【发布时间】:2016-11-28 22:08:02
【问题描述】:
我在使用 UICollectionView 和相关布局时遇到了挑战。我正在尝试创建一个具有两列的垂直 UICollectionView,其中左右列中的单元格的位置如图所示:
我确实可以毫无问题地创建两列,但很难在我的布局中找到正确的设置,以便使右列偏移一个单元格高度的一半。请注意,所有单元格都具有基于屏幕宽度(减去间距)的相同计算尺寸...
我的数据数组中的每个单元格都有一个位置索引,因此我可以根据它轻松找出一个单元格是位于右侧还是左侧(奇数/偶数)
非常感谢任何帮助
【问题讨论】:
-
我会尝试继承默认流布局,覆盖计算每个单元格框架的方法并修改返回值以具有偏移量。
-
@EmilioPelaez 我已经对流布局进行了子类化,但我不确定如何将顶部偏移设置为奇数单元格与偶数单元格不同。例如,它实际上只是第一个奇数单元格,它必须低于 0 索引单元格,然后所有其他单元格将再次具有相同的偏移量......希望它有意义;)
-
我可能看不到全貌,但就我的看法而言,右侧的所有单元格(其
indexPath.item值可能为奇数)需要偏移x。我会继承UICollectionViewFlowLayout并覆盖layoutAttributesForItemAtIndexPath。如果indexPath.item是偶数,则返回super,否则,调用super 并存储结果,将帧更新为x的新矩形偏移量并返回更新后的值。 -
@EmilioPelaez 不确定我是否关注返回超级或呼叫超级。你可以解释或展示和sn-p展示你的意思吗?此外,我正在努力的偏移量是右列中第一个奇数项在 y 轴上的第一个偏移量
标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout