需求:
之前有个朋友问我一个需求,UI大概是这样的:
是不是很眼熟?用UICollectionView+UICollectionViewFlowLayout来布局我相信应该是大家的第一直觉。但是...
问题:
-
先看问题一:朋友开开心心的算出了cell的size,并将UICollectionViewFlowLayout的滚动方向设置成horizontal,让其上下左右似乎满足了UI的效果。然而,此时发现“测试1”出现在了“测试0”的下面而不是右边,这并不是自己想要的效果。
原来这种条件下系统默认的布局是cell是先从上至下,然后再从左至右排列的,因此出现这个问题也就不奇怪了。
-
问题二:除开问题一,还有一个更严重的,那就是滑动之后,由于滑动是分页的,明明第一页算得非常合适的大小和位置,一滑动就会发现,除开第一页以后就不再试用了。
而且你如果只是想通过计算itemSize的大小来实现每页都刚好合适,几乎是不可能的(除非UI也来迁就你的实现)。
解决办法:
相信做iOS开发的孩子遇到这种问题一下子就想到了解决的方法,当然是自定义UICollectionViewLayout啦,在这里我个人觉得,自定义UICollectionViewFlowLayout可能更简单。由于之前写过一篇相关的,这里就不在赘述,给出完成的效果图以及简单的代码实现(嗯,真的是简单的实现,抛砖引玉,仅仅提供一个思路)。
希望对你有帮助。Demo请点击