计算UICollectionView一行能有几个item(cel

作者: 萧旭 | 来源:发表于2017-08-14 16:48 被阅读323次

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)

大家加油!

相关文章

网友评论

  • Shawn_Locke:如果每个item的宽度都是根据文字长度自适应的该怎么办?
    萧旭:@Shawn_Locke 这里collectionView中每行的item数量应该不一样!
    这个我感觉得重新想办法计算了!
    这些是前提:
    这些文本你应该是存到了模型中的,模型应该是存在全局变量变量中的
    然后,
    在你需要计算item count的地方,你可以取出所有的模型,分别计算出模型中文本的长度,然后在根据上边的公式计算,每行中分别会有多少个item.
    这是我的想法!
    Shawn_Locke:@萧旭 不好意思,当时回复的时候有点懵圈...其实我想问的是当item宽度随着文本内容自适应时,如何确定collectionView有多少行item:sweat:
    萧旭:可不可以再详细的描述一下这个需求?
    你是想要,在item宽度不确定的情况下,来确定每行有几个item???

本文标题:计算UICollectionView一行能有几个item(cel

本文链接:https://www.haomeiwen.com/subject/cfvurxtx.html