UICollectionView是iOS开发中的一个容器类视图.
在一些场景中,我们需要在collectionView的一行中设置特定数量的item,但这个数量本鸟不会计算啊!或者说是没有想过怎么算!现在解决了,来跟大家分享一下.
会影响到一行中item数量的属性有以下几个:
- minimumInteritemSpacing: 表示一行中item间最小的距离,默认值为10,注意在collectionView中一般都是设置最小距离,满足最小距离的基础上,才计算有多少个item,不满足的话,需要减少行中item的数量,所以会导致这个值得增大.
- itemSize: 顾名思义,item的大小,默认值为宽50,长50,我们这里只需要关注宽度.
- sectionInset: 表示一个区的上左下右边距,默认值(0,0,0,0),在这里关注左右.
以下这个关系是恒成立
itemCount * itemSize.width + (itemCount - 1) * minimumInteritemSpacing = CollectionView.width - sectionInset.left - sectionInset.right
所以能够得到等式
itemCount = (CollectionView.width - sectionInset.left - sectionInset.right + minimumInteritemSpacing) / (itemSize + minimumInteritemSpacing)
大家加油!
网友评论
这个我感觉得重新想办法计算了!
这些是前提:
这些文本你应该是存到了模型中的,模型应该是存在全局变量变量中的
然后,
在你需要计算item count的地方,你可以取出所有的模型,分别计算出模型中文本的长度,然后在根据上边的公式计算,每行中分别会有多少个item.
这是我的想法!
你是想要,在item宽度不确定的情况下,来确定每行有几个item???