如何水平和垂直居中UICollectionView的单元格?

jjx*_*tra 8 uicollectionview uicollectionviewlayout

如何在UICollectionView使用中垂直和水平居中所有单元UICollectionViewFlowLayout

流动布局根据滚动方向在右侧或底部留下间距.我想在所有方面设置相同的填充.我玩过这个sectionInset属性UICollectionViewFlowLayout.

Dan*_*ang 5

我建议实施UICollectionViewDelegateFlowLayout协议,动态实现细胞的水平和垂直居中.从UICollectionViewDelegateFlowLayout协议参考:

UICollectionViewDelegateFlowLayout协议定义了一些方法,使您可以与UICollectionViewFlowLayout对象进行协调,以实现基于网格的布局.此协议的方法定义项目的大小和网格中项目之间的间距.

该协议中的所有方法都是可选的.如果未实现特定方法,则流布局委托将使用其自己的属性中的值来获取适当的间距信息.

流布局对象期望集合视图的委托对象采用此协议.因此,在分配给集合视图的委托属性的对象上实现此协议.

您可能最感兴趣的collectionView:layout:insetForSectionAtIndex:是可以使用类似的方法调整屏幕四边的插入方法UIEdgeInsetsMake.您可以根据屏幕大小确定插入,方法是从相应的屏幕尺寸(垂直或水平)中减去适当的数量,如单元格的大小.然后,除以2得到特定维度的相等插入.


Cha*_*ran 1

使用过剖面插入吗?

好吧,尝试玩玩 minimumLineSpacing 财产和 minimumInteritemSpacing 财产

最小行距

对于垂直滚动网格,此行间距表示连续行之间的最小间距。对于水平滚动网格,该值表示连续列之间的最小间距。此间距不适用于页眉与第一行之间或最后一行与页脚之间的间距。

最小项目间距

对于垂直滚动网格,此间距表示同一行中项目之间的最小间距。对于水平滚动网格,该值表示同一列中项目之间的最小间距。此间距用于计算一行中可以容纳多少个项目,但在确定项目数量后,实际间距可能会向上调整。