【发布时间】:2016-05-30 08:44:08
【问题描述】:
我正在使用带有圆形布局的UICollectionview。我正在尝试计算每个项目的 contentOffset,但使用圆形布局,完整的 contentsize 似乎与内容不匹配。
- collectionview 的总 contentSize = 780
- 最后一项的内容偏移量 = 397(?)
- 每个项目的内容偏移量 = 33(?)
有什么方法可以通过 indexPath 或至少是 collectionview 中最后一个项目的正确 (397) 值来获取项目的偏移量?我通过测试和打印contentoffset 获得了这些值,但我想通过代码计算这些数字(33 和 397),而无需滚动。
那么有没有办法通过indexPath 计算collectionview 内的单元格contentoffset(?)?
谢谢!
【问题讨论】:
-
也许你可以得到单元格的框架并知道计算它的内容偏移量? UICollectionViewLayoutAttributes *attributes = [self.collectionView layoutAttributesForItemAtIndexPath:indexPath]; CGRect cellRect = attributes.frame;
-
好的,我有我的单元格的 x,y,width 和 height..但是我想要我的 uicollectionview 中项目的内容偏移量。我会使用什么代码?
-
ContentOffset 告诉您如果 scrollView 的 contentSize 大于它的 frame.size,则 scrollView 在某个方向上滚动了多少,否则 contentOffset 为 0。如果您想将其转换为 UICollectionViewCell 的位置,那将是一些东西比如:CGFloat offsetY = fabs(self.collectionView.contentOffset.y - cellLayoutAttributes.frame.origin.y);但我不知道你为什么需要那个。老实说,我不确定这是正确的逻辑,因为 UICollectionViewCell 不能有 contentOffset,它有 frame 和 indexPath。
-
我知道单元格只有一个框架和索引路径,但我需要每个单元格的滚动视图的偏移量。大项目是我有 2 个集合视图,我想将平移手势从第一个集合视图转换为第二个集合视图,其完整的 contentSize 比第一个集合视图小很多。我想在这 2 个 contentSize 之间找到一个乘数,但是......我的 contentSize 值不正确,所以我想计算 1 个单元格的 contentOffset 并将其与 collectionview 中的项目数相乘。希望你能理解。
标签: ios swift uicollectionview swift4 contentoffset