我试图动态地居中UICollectionView的内容,但是现有的解决方案都没有考虑到每行可能有多个单元格的事实.
我在UINavigationBar中尝试过这个中心自定义标题?以及这里的两个解决方案:UICollectionView垂直居中,无济于事.
我很惊讶iOS默认情况下无法做到这一点,甚至更多的是无法获得当前显示的行数(这也解决了我的问题).此外,我无法获得内容的大小(而不仅仅是框架的大小),这也有助于我实现所需的效果.
我有这个:
--------
|X X X X |
|X X X X |
| |
| |
--------
Run Code Online (Sandbox Code Playgroud)
但我想要这个:
--------
| |
|X X X X |
|X X X X |
| |
--------
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,
非常感谢.
Ale*_*tau 23
不确定为什么你不能得到内容的大小 - UICollectionView是一个UIScrollView子类,因此可以访问该contentSize属性.如果您只需将单元格置于中心位置,以防它们全部可见而不滚动,您只需执行以下操作:
collectionView.contentInset.top = max((collectionView.frame.height - collectionView.contentSize.height) / 2, 0)
Run Code Online (Sandbox Code Playgroud)
这也适用于单元格数量增长的情况,这样在屏幕上并不是所有单元格都可见,并且您开始使用垂直滚动 - 顶部插入将设置为0.