如何在Swift中手动更改UICollectionView高度

时间:2015-05-06 03:08:06

标签: ios swift uicollectionview

我正在隐藏在collectionView中完成的行。 我需要在cell.hidden = isCellHidden中致电cellForItemAtIndexPath

在我隐藏10行之后,剩下大量的空白空间,我想减少collectionView的大小以仅适合未隐藏的行。

collectionView的设计有点像tableView。 我知道使用tableView我必须做的就是设置:

func section1VisibilityButton(sender: UIButton){
    isCellHidden = !isCellHidden
    self.tableView.reloadData()
    self.tableView.contentSize.height = CGFloat(500)
}

使用collectionView,当我尝试这个时它会正确调整大小但是当我尝试向下滚动时它会将自身调整回原始高度,包括隐藏的单元格(单元格层仍然隐藏但是有大量的空白空间最后一个可见的行,好像它们是可见的一样)

1 个答案:

答案 0 :(得分:0)

对于您的问题,有两个选项可以更改collectionView / tableView的框架。

  1. 如果您使用自动布局,则需要创建IBOutlet of bottom constraint的{​​{1}}或IBOutlet of constant height constraint(这些约束中的任何一个,你是使用)。

  2. tableView数据后,您需要通过计算reload tableView更新约束

  3. 假设您使用 height,并且您计算的constant height constraintheight(例如,每行3行和50个高度)。

    150
    1. 如果您未使用自动布局,则可以通过更改 tableView.frame 属性来手动更改高度。