vis*_*aka 3 uitableview ios uicollectionview swift
我必须UICollectionView在 a 内添加一个UITableViewCell. 它们collectionView可以有不同数量的项目。所以collectionView应该在里面适当调整tableView。
我已经在我的项目中实现了这个: https ://github.com/vishalwaka/DynamicCollectionViewInsideTableViewCell
collectionView就我而言,设置单元格的高度后不会调整单元格的高度。
如何设置collectionView不可滚动并显示tableviewcell.
创建一个具有前导、尾随、顶部、底部、高度约束的collectionView内部UITableViewCell,如下所示:
现在,在您的tableViewCell类中创建一个NSKeyValueObserver并将其添加到 的UICollectionViewcontentSize属性上,并将 contentSize 更改分配给 collectionView 的高度约束。
class FormCollectionTableViewCell: UITableViewCell{
var collectionViewObserver: NSKeyValueObservation?
override func awakeFromNib() {
super.awakeFromNib()
addObserver()
}
override func layoutSubviews() {
super.layoutSubviews()
layoutIfNeeded()
}
func addObserver() {
collectionViewObserver = collectionView.observe(\.contentSize, changeHandler: { [weak self] (collectionView, change) in
self?.collectionView.invalidateIntrinsicContentSize()
self?.collectionViewHrightConstarint.constant = collectionView.contentSize.height
self?.layoutIfNeeded()
})
}
deinit {
collectionViewObserver = nil
}
}
Run Code Online (Sandbox Code Playgroud)
在你的 viewController 类中使用以下代码:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
现在,您的表视图将具有具有动态高度的集合视图。不要忘记禁用滚动UICollectionView并调整其流程。
| 归档时间: |
|
| 查看次数: |
4698 次 |
| 最近记录: |