如何在集合视图中使用一个单元格,其高度与屏幕相同,减去导航。酒吧?

时间:2017-06-02 14:54:13

标签: swift uicollectionview uinavigationbar uicollectionviewcell

我正在尝试使我的集合视图单元格覆盖屏幕的高度,而不是在导航栏下面。我有导航栏的高度,并使用它来制作单元格的高度。问题是单元格仍然比它应该更高,如果我向下滚动它将进入导航栏。我需要完全没有导航栏的屏幕高度。代码清单如下:

 override func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let navBarHeight: CGFloat = (self.navigationController?.navigationBar.frame.height)!
    let heightOfCell: CGFloat = view.frame.height - navBarHeight
    return CGSize(width: view.frame.width, height: heightOfCell)

}

1 个答案:

答案 0 :(得分:0)

在viewController中尝试下一段代码:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    collectionView.collectionViewLayout.invalidateLayout()
}