Swift tableview中的Collectionview导致2列出现问题

Swift tableview中的Collectionview导致2列出现问题,swift,uitableview,uicollectionview,autosize,Swift,Uitableview,Uicollectionview,Autosize,我在tableview单元格内有垂直集合视图。集合视图也包含加载更多的功能。对于集合视图的自调整大小,我使tableview单元格自动调整大小。 此外,我还为集合视图提供了高度常量。第一次正确加载它,但一旦我转到最后一个单元格,在重新加载后加载更多,它在集合视图后创建了大量空间。谁能告诉我我做错了什么。或者,是否有其他方法可以使tableview内部的集合视图自动调整大小,从而增加tableview单元格的高度 ** TableviewCell类 ** justForYouCollectio

我在tableview单元格内有垂直集合视图。集合视图也包含加载更多的功能。对于集合视图的自调整大小,我使tableview单元格自动调整大小。 此外,我还为集合视图提供了高度常量。第一次正确加载它,但一旦我转到最后一个单元格,在重新加载后加载更多,它在集合视图后创建了大量空间。谁能告诉我我做错了什么。或者,是否有其他方法可以使tableview内部的集合视图自动调整大小,从而增加tableview单元格的高度

**

  • TableviewCell类
**

justForYouCollectionView.dataSource=self
justForYouCollectionView.delegate=self
justForYouCollectionView.IsCrollenabled=false
self.collectionHeight.constant=self.justForYouCollectionView.collectionViewLayout.collectionViewContentSize.height
justForYouCollectionView.reloadData()
覆盖func systemLayoutSizeFitting(uuTargetSize:CGSize,带水平装配优先级水平装配优先级:UILayoutPriority,垂直装配优先级:UILayoutPriority)->CGSize{
self.layoutifneed()
让contentSize=self.justForYouCollectionView.collectionViewLayout.collectionViewContentSize
返回CGSize(宽度:contentSize.width,高度:contentSize.height+20)
}
func collectionView(collectionView:UICollectionView,cellForItemAt indexPath:indexPath)->UICollectionViewCell{
如果indexath.row==self.justForYouArray.count-1&&self.isLoadMore{
updateNextSet()
}
}
**

  • CollectionViewCell类
**

override func PreferredLayoutAttribute拟合(\uLayoutAttribute:UICollectionViewLayoutAttribute)->UICollectionViewLayoutAttribute{
让AutoLayoutAttribute=super.PreferredLayoutAttribute拟合(LayoutAttribute)
//指定您想要的全宽_
设targetSize=CGSize(宽度:layouttributes.frame.width,高度:0)
//使用自动布局计算尺寸(高度)
让autoLayoutSize=contentView.SystemLayoutSizeFiting(targetSize,带水平装配优先级:UILayoutPriority.required,垂直装配优先级:UILayoutPriority.defaultLow)
让autoLayoutFrame=CGRect(原点:AutoLayoutAttribute.frame.origin,大小:autoLayoutSize)
//将新大小指定给布局属性
AutoLayoutAttribute.frame=autoLayoutFrame
返回自动布局属性
}
在图像中可以看到额外的空间


我之前所做的就是,在序列图像板中设置tableview高度约束集,并将其出口放在viewController中,然后在填充数据后获取数组计数并除以2,在除以后,我将其乘以CollectionViewCell高度,并将该高度设置为UITableView高度约束,如下所示

let count = (array.count / 2) * cellHeight
tableviewHeightConstraint.constant = CGFloat(count)
这将解决您的问题。

试试看

let a = (yourArray.count /2 ) * heightCell
tblViewHeightConstraint.constant = CGFloat(a)