【问题标题】:SwiftUI View in UICollectionViewCellUICollectionViewCell 中的 SwiftUI 视图
【发布时间】:2020-11-17 01:36:32
【问题描述】:

我有一个 UICollectionView,我正在尝试使用 SwiftUI 设计我的 UICollectionViewCell。我已经看到了两个例子,one 和 two 在他们的 UICollectionViewCell 中以下列方式做到了这一点:

let controller = UIHostingController(rootView: SomeSwiftUIView)
let view = controller.view!
view.translatesAutoresizingMaskIntoConstraints = false
addSubview(view)
NSLayoutConstraint.activate([
    view.leadingAnchor.constraint(equalTo: contentView.leadingAnchor),
    view.topAnchor.constraint(equalTo: contentView.topAnchor),
    view.trailingAnchor.constraint(equalTo: contentView.trailingAnchor),
    view.bottomAnchor.constraint(equalTo: contentView.bottomAnchor)
])

这在视觉上效果很好,但我遇到的一个问题是我没有与 SwiftUI 视图进行用户交互。例如,如果我在 SwiftUI 视图中有一个 Button,则当您点击该按钮时不会执行该操作。如果 List 在 SwiftUI 视图中,则无法滚动该视图。 (我不是想在里面放一个List,这只是一个例子)

关于从这里去哪里有什么建议吗?谢谢!

【问题讨论】:

    标签: swift uicollectionview swiftui ios14 xcode12


    【解决方案1】:

    我通过将视图约束到单元格而不是 contentView 来解决这个问题,现在它工作正常。

    NSLayoutConstraint.activate([
        view.leadingAnchor.constraint(equalTo: leadingAnchor),
        view.topAnchor.constraint(equalTo: topAnchor),
        view.trailingAnchor.constraint(equalTo: trailingAnchor),
        view.bottomAnchor.constraint(equalTo: bottomAnchor)
    ])
    

    正如我所怀疑的,这是一个分层问题。

    【讨论】:

      猜你喜欢
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 2020-06-21
      • 2016-03-06
      • 1970-01-01
      相关资源
      最近更新 更多