如何使用 SwiftUI 在 UICollectionViewCell 中填充内容
Posted
技术标签:
【中文标题】如何使用 SwiftUI 在 UICollectionViewCell 中填充内容【英文标题】:How can I use SwiftUI to populate content in a UICollectionViewCell 【发布时间】:2020-03-29 02:56:09 【问题描述】:因为SwiftUI
没有UICollectionView-like
控件,所以我改用UIKit
。
根据interfacing-with-uikit,我知道SwiftUI
如何与UIKit
交互,但我想进一步使用SwiftUI
封装UICollectionViewCell
,并使用SwiftUI
填充UICollectionViewCell
的内容,我该怎么做。
据我所知SwiftUI
中的List是按照UITableView
封装的,我想让SwiftUI
和UICollectionView
做同样的事情,我不想用一些三方库来做这个,我想知道秘密
【问题讨论】:
【参考方案1】:假设您有 CellContentView
SwiftUI 视图,您可以使用类似以下的方式将其集成到 UICollectionViewCell
中
if let cellContent = UIHostingController(rootView: CellContentView()).view
cell.contentView.addSubview(cellContent)
cellContent.leadingAnchor.constraint(equalTo: cell.leadingAnchor).isActive = true
cellContent.trailingAnchor.constraint(equalTo: cell.trailingAnchor).isActive = true
cellContent.topAnchor.constraint(equalTo: cell.topAnchor).isActive = true
cellContent.bottomAnchor.constraint(equalTo: cell.bottomAnchor).isActive = true
【讨论】:
我已经尝试过这个解决方案,它工作正常,除了我无法与 SwiftUI 视图交互。我无法在我的 SwiftUI 视图中按下按钮,所以我尝试添加一个列表,但我也无法滚动列表。也许是分层问题?以上是关于如何使用 SwiftUI 在 UICollectionViewCell 中填充内容的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SwiftUI 中使用 SFSafariViewController?
如何在 Xcode Playground 中使用 SwiftUI?
如何在 SwiftUI 中使用 .fileimporter 保存音频文件并检索文件并在 SwiftUI 列表中显示它们的文件名?