我在垂直滚动视图中有两个水平collectionview。顶部collectionview具有固定的单元格高度300,但是底部collectionview应该具有基于内容大小的动态高度。我这样做了:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if collectionView == headerCollectionView {
return CGSize(width: view.bounds.width, height: 300)
}
if collectionView == contentCollectionView {
return CGSize(width: view.bounds.width, height: contentHeight.constant)
}
return CGSize(width: 0, height: 0)
}
然后在我的cellForItemAt方法中,我试图更改contentHeight约束,但是这样做之后,即使将contentTopConstraint设置为0,我的内容也会向下移动。
我在这里可以做什么?
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if collectionView == contentCollectionView {
let contentCell = collectionView.dequeueReusableCell(withReuseIdentifier: "ContentCell", for: indexPath) as! ContentCell
contentCell.setNames(currentBlock.items[indexPath.row])
if contentCell.name.countLabelLines() > 1 {
self.contentHeight.constant += 34
}[![enter image description here][1]][1]
APIManager.load(item_id: currentBlock.items[indexPath.row].id) { (apiItem, error) in
if error == nil {
DispatchQueue.main.async {
contentCell.setContent(apiItem!)
}
}
}
return contentCell
}
return UICollectionViewCell()
}