gpt4 book ai didi

ios - 自定义 UICollectionviewlayout

转载 作者:行者123 更新时间:2023-11-30 11:56:46 24 4
gpt4 key购买 nike

我正在尝试配置 Collection View 以在附图中显示以下自定义布局: Custom UICollectionView Layout 。本质上,我希望能够配置我的 Collection View ,使其看起来基于行而不是列。例如:

第 1 行:3 个大小相等的正方形,每个正方形是屏幕宽度的 1/3

第 2 行:1 个正方形,即屏幕宽度的 2/3,然后堆叠 2 个正方形 彼此顶部,各为屏幕宽度的 1/3。

第 3 行:1 个填充屏幕宽度的矩形

第 4 行:2 个大小相等的正方形,每个正方形是屏幕宽度的 1/2

我已经浏览了多个 UICollectionViewLayoutUICollectionViewDelegateFlowLayout 教程,但无法找到我需要的信息。

最佳答案

您需要实现自定义UICollectionViewLayout

  1. 预先计算 prepareLayout 中重复的所有方 block 的位置
  2. 使用(重复高度)*(集合中的项目数)/(重复的项目数)+ collectionViewContentSize 中剩余部分的高度返回内容的高度(这意味着您应该缓存步骤 1 中每个项目的内容高度,但高度不是该正方形的高度(它是该行中最高元素的高度)
  3. layoutAttributesForElementsInRect您需要弄清楚您的矩形从哪个重复行开始,以及它在重复的哪一行结束。然后,您返回步骤 1 中这些行的所有缓存布局属性,但您必须添加回等于 (repeat计数)/(第一项索引)*(重复高度)。

基本上它是一堆数学问题,但是当你将其划分为重复部分时,问题就变成了我在哪个重复部分(除法)以及我需要该重复部分中的哪个元素(模数),并且更容易解决。

我做了一些与此类似的事情,但是可以按不同的顺序排列多次重复,并且花了几个小时才使其正常工作而没有任何错误。这是大量的数学运算,而且非常乏味。

关于ios - 自定义 UICollectionviewlayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47721578/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com