swift - 如何使 Collection View 中的一个单元格的高度与屏幕减去导航高度相同。酒吧?

标签 swift uicollectionview uinavigationbar uicollectionviewcell

我试图让我的 Collection View 单元格覆盖屏幕的高度而不进入导航栏下方。我得到了导航栏的高度,并用它来制作单元格的高度。问题是单元格仍然比它应该的高,如果我向下滚动它会在导航栏下方。我需要在没有导航栏的情况下正好是屏幕的高度。代码 list 如下:

 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)

}

最佳答案

在您的 viewController 中尝试下一段代码:

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

关于swift - 如何使 Collection View 中的一个单元格的高度与屏幕减去导航高度相同。酒吧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44331828/

相关文章:

swift - Xcode 方案中的启动参数

ios - Swift 3 警告 func collectionView 实例方法几乎符合可选要求

javascript - 导航栏表现奇怪

ios - UINavigationBar 中的雪佛龙在显示弹出窗口时不会变暗

ios - JSQMessage传出气泡对齐问题

ios - 从 UIColor 中提取 RGB 值

swift - 如何在进入后台或恢复到前台时重定向到主屏幕

ios - 我怎样才能提高实现照片过滤器的速度?

ios - Outlet 无法连接到 CollectionView 单元格中的重复内容

ios - 隐藏导航栏和内容之间的分隔线