我有一个UICollectionViewController,其中的单元格代表了屏幕的视图。我这样做是为了创建一个自定义标签栏,当选中标签栏上的单元格时,该标签栏会更改为不同的单元格。
我认为我需要在导航栏隐藏时更改单元格高度,但我不知道该怎么做或者这个设置是“不好的做法”。
以下是我的所有约束(-
是底部的白色工具栏):
menuBar
我在这里设置每个项目的大小:
view.addSubview(menuBar)
view.addConstraintsWithFormat("H:|[v0]|", views: menuBar)
view.addConstraintsWithFormat("V:[v0(44)]", views: menuBar)
menuBar.bottomAnchor.constraint(equalTo: bottomLayoutGuide.bottomAnchor).isActive = true
collectionView?.contentInset = UIEdgeInsetsMake(0, 0, 44, 0)
collectionView?.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 44, 0)
因为我的代码中的这一行
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: view.frame.width, height: view.frame.height - 44)
}
导航栏正确隐藏,但我留下了这个结果(蓝色是一个单元格):
之前
后
答案 0 :(得分:1)
您有一个空格,因为您要求集合视图在内容底部与集合视图按钮之间有填充。以下是您的代码。
import {Link} from 'react-router-dom'
<Link
className="btn btn-primary btn-lg"
to={'/path'}>
Learn More
</Link>
当您尝试将collectionView?.contentInset = UIEdgeInsetsMake(0, 0, 44, 0)
collectionView?.scrollIndicatorInsets = UIEdgeInsetsMake(0, 0, 44, 0)
设置为true时,确保您的集合视图对其周围环境具有正确的约束非常重要,因为当隐藏导航栏时,您的集合视图实际上使用了导航栏空间。首先,请确保将视图控制器的hidesBarsOnSwipe
设置为false。然后,确保集合视图的顶部和底部约束连接在集合视图和顶部和顶部之间。像这样的按钮布局指南
最后,删除内容insets代码,这两行代码的按钮填充为44。