UI

UICollectionView 等分有缝隙

2017-04-12  本文已影响0人  alpha_feng

最近开发遇到一个问题,如果一个UICollectionView需要等分屏幕时,有些情况会出现缝隙的情况。

iPhone 6 4等分,有两条缝隙

这个原因是屏幕的最小单位是1像素(1px),iPhone 6的屏幕宽度是750px,750/4=187.5会有小数点出现,不是一个完整的像素,会导致缝隙的出现。

如果消除这些缝隙呢?这里可以很老套感觉又比较实用的方法。
在返回每个cell的Size的回调时,针对每个cell的位置返回不一样的Size。

计算的逻辑是这样的,先计算出屏幕的实际宽度,在根据列数取模,得到的模再分配给左边的cell,直到分配完为止,每个cell的高度都取最长的高度,防止每一行间也有缝隙。

最后增加了一个space的参数,可以把每一列的间隔也考虑了。每一列的间隔也可以通过UICollectionView的回调函数中设置。
直接上代码吧:传送门

<pre>
/**

*/

iPhone 6 4等分,没有缝隙 iPhone 6 11等分,没有缝隙
上一篇下一篇

猜你喜欢

热点阅读