gpt4 book ai didi

swift - CollectionView 内的 TableView 内的单元格在首次加载时高度不正确(Swift 4)

转载 作者:行者123 更新时间:2023-11-30 11:36:53 25 4
gpt4 key购买 nike

我在几个 CollectionView 单元格中有一个 tableView。每个 tableView 占据单元格的完整大小。 CollectionView 水平滑动。

Collection View :

collectionView.frame = .zero
collectionView.backgroundColor = UIColor.clear
collectionView.dataSource = self as UICollectionViewDataSource
collectionView.delegate = self as UICollectionViewDelegate
collectionViewLayout.scrollDirection = .horizontal
collectionViewLayout.minimumLineSpacing = 0.0
collectionViewLayout.minimumInteritemSpacing = 0.0
collectionViewLayout.estimatedItemSize = CGSize(width: view.frame.width, height: view.frame.height)
collectionView.collectionViewLayout = collectionViewLayout
collectionView.isPagingEnabled = true
collectionView.register(collectionViewCell.self, forCellWithReuseIdentifier: collectionViewCellID)
collectionView.translatesAutoresizingMaskIntoConstraints = false

collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
collectionView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
collectionView.topAnchor.constraint(equalTo: headerView.bottomAnchor).isActive = true
collectionView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true

CollectionView 单元格内的 TableView:

tableView.delegate = self
tableView.dataSource = self
tableView.translatesAutoresizingMaskIntoConstraints = false
tableView.register(tableViewCell.self, forCellReuseIdentifier: "tableViewCell")
tableView.register(tableViewCell.self, forCellReuseIdentifier: "emptyTableViewCell")
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 105

tableView.topAnchor.constraint(equalTo: topAnchor).isActive = true
tableView.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
tableView.leftAnchor.constraint(equalTo: leftAnchor).isActive = true
tableView.rightAnchor.constraint(equalTo: rightAnchor).isActive = true

tableView 在 CollectionView 的 cellForItemAt 下重新加载,并具有自定义单元格。自定义 tableView 单元格包含几个小 View ,这些 View 被添加到名为“cellView”的单个 View 中,该 View 占据了单元格的整个大小:

let cellView = UIView()
addSubview(cellView)
cellView.translatesAutoresizingMaskIntoConstraints = false
cellView.topAnchor.constraint(equalTo: topAnchor).isActive = true
cellView.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
cellView.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
cellView.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true

所以......它加载如下:

1)加载CollectionView

2)加载CollectionViewCell

3)在CollectionViewCell中加载Ta​​bleView

4)重新加载TableView

但是...当它第一次加载时,TableView 的各个单元格的大小会减小:

tableView - incorrect height

单元格具有正确高度的唯一方法是重新加载整个 CollectionView。 一旦发生这种情况,一切都会正确显示。

我认为这可能与estimatedRowHeight 有关,但我对此进行了调整,没有产生任何影响。就好像 tableView 在首次加载时最初将自定义单元格的大小设置为典型的“非自定义”单元格的大小。

这就是每个 tableView 单元格应该看起来的样子。

有什么想法吗?

enter image description here

最佳答案

不确定这是否有帮助,但看起来您的细胞有图像。如果我没有在 ImageView 中放置占位符图像,我会遇到动态高度单元的问题。

关于swift - CollectionView 内的 TableView 内的单元格在首次加载时高度不正确(Swift 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49656954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com