UICollectionViewLayoutlayoutAttributesForElementsInRect和layoutAttributesForItemAtIndexPath

2023-11-23

我正在实现自定义流程布局。它有两种主要方法来覆盖以确定单元格的位置:layoutAttributesForElementsInRect and layoutAttributesForItemAtIndexPath.

在我的代码中,layoutAttributesForElementsInRect被称为,但是layoutAttributesForItemAtIndexPath不是。什么决定哪个被调用?哪里有layoutAttributesForItemAtIndexPath接到电话吗?


layoutAttributesForElementsInRect:不一定会打电话layoutAttributesForItemAtIndexPath:.

事实上,如果你子类化UICollectionViewFlowLayout,流布局将准备布局并缓存结果属性。所以,当layoutAttributesForElementsInRect:被调用,它不会询问layoutAttributesForItemAtIndexPath:,但仅使用缓存的值。

如果您想确保布局属性始终根据您的布局进行修改,请为两者实现修饰符layoutAttributesForElementsInRect: and layoutAttributesForItemAtIndexPath::

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
{
  NSArray *attributesInRect = [super layoutAttributesForElementsInRect:rect];
  for (UICollectionViewLayoutAttributes *cellAttributes in attributesInRect) {
    [self modifyLayoutAttributes:cellAttributes];
  }
  return attributesInRect;
}

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath
{
  UICollectionViewLayoutAttributes *attributes = [super layoutAttributesForItemAtIndexPath:indexPath];
  [self modifyLayoutAttributes:attributes];
  return attributes;
}

- (void)modifyLayoutAttributes:(UICollectionViewLayoutAttributes *)attributes
{
  // Adjust the standard properties size, center, transform etc.
  // Or subclass UICollectionViewLayoutAttributes and add additional attributes.
  // Note, that a subclass will require you to override copyWithZone and isEqual.
  // And you'll need to tell your layout to use your subclass in +(Class)layoutAttributesClass
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UICollectionViewLayoutlayoutAttributesForElementsInRect和layoutAttributesForItemAtIndexPath 的相关文章

  • 将数组值导出到 csv 文件 java

    我只需要帮助将数组元素导出到 csv 文件 我不知道我的代码有什么问题 任何帮助将不胜感激 谢谢 for int index 0 index lt cols length index FileWriter fw new FileWriter
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • R - 加速近似日期匹配。 idata.frame?

    我正在努力有效地执行两个数据帧之间的 关闭 日期匹配 这个问题探索了一个解决方案 使用idata frame来自plyr包 但我也对其他建议的解决方案感到非常满意 这是两个数据框的非常简单的版本 sampleticker lt data f
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • CUDA 添加矩阵的行

    我试图将 4800x9600 矩阵的行加在一起 得到一个 1x9600 的矩阵 我所做的是将 4800x9600 分成 9 600 个矩阵 每个矩阵长度为 4800 然后我对 4800 个元素进行缩减 问题是 这真的很慢 有人有什么建议吗
  • 声明 for 循环变量时 &mut 会做什么吗?

    考虑以下 愚蠢的 程序 fn main let mut array mut 1u8 2u8 3u8 for mut value in array 它编译并运行正常 尽管如预期的那样警告未使用的变量 不必要的可变性 但有什么作用 mut做在f
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc
  • 无法完成添加 Android 证书的构建

    我刚刚完成构建我的应用程序 我发送了一个没有证书的构建版本 它工作了 现在添加一个 android 证书 它在我的代号 one 仪表板上报告构建错误 如有帮助 将不胜感激 失败 构建失败并出现异常 出了什么问题 执行 任务失败 transf
  • 在引导程序中以编程方式更改选项卡窗格选项卡

    我使用的选项卡窗格定义为 ul class nav nav tabs li a href personal Personal Information a li li class active a href contact Contact a
  • 对齐与未对齐 x86 SIMD 指令之间的选择

    SIMD指令一般有两种类型 A 使用对齐的内存地址 如果地址未在操作数大小边界上对齐 则会引发一般保护 GP 异常 movaps xmm0 xmmword ptr rax vmovaps ymm0 ymmword ptr rax vmova
  • Jenkins 通过 ssh 发布显示错误“jenkins.plugins.publish_over.BapPublisherException:无法添加 SSH 密钥。”

    为了使用 ssh 连接 jenkins 与远程服务器 我在 jenkins 中安装了通过 SSH 发布的插件 但配置后 它显示错误为 jenkins plugins publish over BapPublisherException 无法
  • 在并行包中的 R 的 par*apply 函数内部使用 Rcpp 函数

    我试图了解背后发生的事情Rcpp sourceCpp 调用并行环境 最近 问题中部分解决了这个问题 在 Windows 上使用 parLapply 中的 Rcpp 函数 https stackoverflow com questions 2
  • NSUserDefaults、Settings.bundle 和应用程序组

    我有一个有 2 个目标的应用程序 主应用程序和 Today 扩展 为了在这些目标之间共享设置 我打开了应用程序组功能 添加了一个组group myApp com然后使用NSUserDefaults在主应用程序和今日扩展中都是如此 var d
  • 小部件配置在 macOS 上不起作用

    我为我的 iOS 应用程序制作了一个小部件 效果很好 现在我正在将其移植到我的 macOS 应用程序中 但不知何故 小部件配置不起作用 这些项目已显示 但我无法以某种方式选择它们 查看屏幕截图 但请看一下我制作的视频 https youtu
  • 在 Navicat Premium 中连接到 LocalDB 服务器

    Recently I installed LocalDb Serer on my laptop I am trying to establish a connection between Navicat and LocalDB server
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i
  • Ada 中的 In/Out 与 Out

    我有一个简短的艾达问题 如果我有一个程序may写出一个变量 或者我might不用管它 它应该是一个Out参数或In Out范围 我想这可以归结为一个问题 如果调用者调用参数如下的过程 它会看到什么Out但该过程不触及参数 它看到相同的值吗
  • 使用未分配的局部变量

    我遇到了一个错误 尽管声明了变量 failturetext 和 userName 错误仍然出现 谁能帮帮我吗 Use of Unassigned local variable FailureText Use of Unassigned lo

随机推荐

  • 使用 Bootstrap 折叠插件进行 Javascript 切换

    我尝试以编程方式使用 Bootstrap 折叠插件的切换功能 当我单击手风琴标题中的链接时 我设法切换 div 但它只能工作一次 也就是说我无法再次单击来隐藏 div 这是我的代码 div class accordion div class
  • 下载前 1000 字节

    我需要使用 C 从互联网下载文本文件 文件大小可能相当大 而我需要的信息始终在前 1000 字节内 这可能吗 被盗自here string GetWebPageContent string url string result string
  • 如何为每个组选择固定行数?

    这是 mysql 表中的一些示例数据 a b distance 15 44 250 94 31 250 30 41 250 6 1 250 95 18 250 72 84 500 14 23 500 55 24 500 95 8 500 5
  • Python 全局变量和类功能

    我正在创建一个简单的 python 程序 它提供 SMS Inbox 的基本功能 我创建了一个 SMS Inbox 方法 store message count 0 class sms store def add new arrival s
  • 如何在使用单个测试项目时将所有 QtTestLib 单元测试结果组合到单个文件中?

    在我们的项目中 我们使用 QtTestLib 进行单元测试 原因是整个项目已经尽可能使用Qt 并且它是一个GUI应用程序 所以我们希望具有测试GUI界面的能力 我们的项目是由 MSVC 编译的 因此我们不想为每个测试都有一个单独的项目文件
  • 从数组中获取过滤后的值(范围为 10-20 之间的值)

    如何获得过滤值来自范围 10 20 之间的类似数组的值 我的数组包含 10 15 18 25 88 20 我只想打印 10 20 范围内的内容 use array intersect with range input array 10 15
  • 将 pandas 数据帧转换为 utf8

    如何将 pandas 数据帧转换为 unicode messages pandas read csv data SMSSpamCollection sep t quoting csv QUOTE NONE names label messa
  • JS/HTML5 WebSocket:无需 HTTP 调用即可连接

    好吧 我刚刚尝试了 HTML 5 中的新 WebSocket 类 并且对它们的存在感到非常兴奋 然而 我看不出它们比 AJAX 更有价值 因为它们仍然发起 HTTP 调用并且not就像传统的插座一样 这就是我在这里问的原因 有没有办法使用
  • Android Room + 窗口功能

    我尝试在房间查询中使用窗口函数 解析器抱怨我的查询 我只是尝试在 select 语句中添加 ROW NUMBER OVER ORDER BY column 表达式 如果没有此表达式 查询将正确运行 解析器错误 extraneous inpu
  • 我可以检测浏览器中可用的 async/await 吗? [复制]

    这个问题在这里已经有答案了 如标题 如何检测浏览器中的 async await es7 支持 那可能吗 与任何其他语法特征一样 应该对其进行评估才能被检测到 自从eval可以被限制 当启用 CSP 时这可能是不可能的 let isAsync
  • 如何有条件地导入 xslt 中的样式表?

    有没有办法在检查某些条件后导入样式表 例如 如果变量 a 的值 1 则导入 1 xsl 否则导入 2 xsl 大家好 请问有什么办法可以导入吗 检查一些样式表后 状况 就像 如果变量 a 的值 1 然后导入 1 xsl 或者导入 2 xsl
  • node_modules 未被识别为内部或外部命令

    我正在尝试使用 appium jasmine 和 Perfecto mobile 编写测试自动化脚本 我正在使用从以下 URL 克隆的项目和我自己的配置Appium JavaScript 示例 问题是当我执行npm test命令我收到以下错
  • 从单独的路由文件内部访问快速“应用程序”对象的最佳方法是什么?

    在 Express 4 中 默认情况下 路由是从单独的文件加载的 app use routes 将加载routes index js 我有一个附加到的第三方库app本身 是否有首选的访问方式app从内部routes index js 我考虑
  • 关闭呈现的视图控制器

    我有一个理论问题 现在我正在阅读苹果的视图控制器 guide 他们写 当需要关闭呈现的视图控制器时 首选方法是让呈现视图控制器关闭 它 换句话说 只要有可能 同一个视图控制器 提出视图控制器还应该负责 驳回它 尽管有多种方法可以通知 呈现视
  • glibc 的 fprintf() 实现是线程安全的吗?

    fprintf 是线程安全的吗 glibc 手册似乎是这样 但我的应用程序使用对 fprintf 的单个调用写入文件似乎混合了来自不同进程的部分写入 编辑 澄清一下 有问题的程序是lighttpd插件 并且服务器正在运行多个工作线程 查看该
  • Symfony 手动连接参数 - 'arguments' 与 'bind'

    我尝试找出如何手动注入参数DefaultController 没有自动装配 我发现有两种方法可以实现这一目标 我可以用arguments services defaults autowire false autoconfigure true
  • 使用 LIKE 搜索 GROUP_CONCAT

    我有一个 SQL 查询 它使用 GROUP CONCAT 让所有人附加到某个订单 有没有办法可以在 GROUP CONCAT 字段内进行搜索 SELECT orders orderID GROUP CONCAT contacts first
  • 结构解引用运算符(运算符->)

    我正在为迭代器编写一个薄模板包装器 在通过结构取消引用运算符时遇到了绊脚石 主要是因为指针没有 include
  • 填充可用空间的 CSS 布局

    我正在尝试做一个看似简单的网页布局 但我遇到了困难 I d like做一切事纯粹用CSS 没有桌子把事情搞砸 并且没有 JavaScript动态调整事物的大小 我想要 具有固定高度的标题 固定高度的页脚 具有固定宽度的左侧边栏 具有固定宽度
  • UICollectionViewLayoutlayoutAttributesForElementsInRect和layoutAttributesForItemAtIndexPath

    我正在实现自定义流程布局 它有两种主要方法来覆盖以确定单元格的位置 layoutAttributesForElementsInRect and layoutAttributesForItemAtIndexPath 在我的代码中 layout