iOS 8 中的嵌套 UICollectionViews、自动布局和旋转

2024-04-20

我开始在一个大型项目中使用 AutoLayout,并对它感到非常惊讶。但是,现在我必须调整项目以适应旋转和尺寸类别,并且我在让视图正确运行方面遇到了很大的麻烦。

基本问题是我有UICollectionViews with 再次包含 UICollectionViews 的单元格。当设备旋转时,基本集合视图会正确调整其单元格,但嵌套集合视图的所有单元格不会自动调整为新大小。

经过调查,得出结论是:

  • When viewWillTransitionToSize被调用时,基本集合视图尚未旋转(如预期)
  • 在调用 viewDidLayoutSubviews 之后的某个时间,基本集合视图现在具有旋转的大小 - 但不幸的是它的单元格还没有 - 它们仍然具有旋转之前的宽度
  • 即使在coordinator animateAlongsideTransition ... completion:{}阻止viewWillTransitionToSize单元格还没有新的宽度。

上述意味着我无法告诉嵌套集合视图的单元格更改其大小,因为我还不知道新的宽度;并且自动布局系统不会自动调整它们。

还有其他人有同样的问题或知道解决方案吗?


在这里回答我自己的问题 - 我终于找到了解决方案。对于其他遇到此问题的人,我是这样做的:

主要部分在于放置invalidateLayout and reloadData在正确的地方调用:

  • Put an invalidateLayout在基础 collectionView 的布局上willTransitionToSize功能。
  • Put a reloadData在基础 CollectionView 中完成块 of a coordinator animateAlongsideTransition:调用willTransitionToSize功能。
  • 确保自动布局单元格中任何视图的约束都设置正确 - 我将带有自动布局约束的单元格视图连接到代码中单元格的内容视图。
  • 如果您覆盖了prepareLayout集合视图布局的功能,请确保预先计算的单元格大小使用正确的宽度,我在这里使用了错误的宽度,这导致了一些额外的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 8 中的嵌套 UICollectionViews、自动布局和旋转 的相关文章

随机推荐

  • php 头问题

    你能帮我一下吗 我转移到新的托管 突然收到此错误 警告 无法修改标头信息 标头已由 输出从 home capital public html Google Connect php 1 开始 在 home capital public htm
  • AS3 瓦片地图渲染(具有 1000 个瓦片)

    首先我要说的是 这里的上下文是 Actionscript 3 0 IDE Flashbuilder 以及椋鸟框架 http gamua com starling 因此 我想创建一个可用于平台游戏或类似游戏的图块地图 我想在 800x600
  • R:在 data.frame 列中拆分不平衡列表

    假设您有一个具有以下结构的数据框 df lt data frame a c 1 2 3 4 b c job1 job2 job1a job4 job5 job6 job9 job10 job11 列所在的位置b是一个以分号分隔的列表 按行不
  • Apple Watch 应用程序无法本地化

    我已经为德语 法语 西班牙语和简体中文设置了 interface storyboard 字符串 我下载了 iOS 应用程序并将其加载到手表上 例如 我然后将手表语言设置为德语 但用户界面仍然是英文 以下是 interface storybo
  • 我的列表视图不会输出,是否需要 if 回发?

    所以我正在运行一个 C 函数 该函数应该根据值更改文本的颜色 当我从列表视图中删除该函数时 它会输出值 但是当我包含它时 它不会输出任何内容我现在终于发现我的函数没有任何问题 但我如何将数据绑定到列表视图 所以我想知道我做错了什么 这是我的
  • 当 props 改变时,React 不会重新渲染组件

    我有一个问题 当 React 组件的 props 改变时 它们不会重新渲染 GroupLabel 将 counter 作为 prop export const GroupLabel props gt const change gt prop
  • 如何查找属于 Firebase 应用程序一部分的用户?

    我在 Firebase 中有一个项目 该项目有 2 个应用程序 1 安卓 2 iOS 我想知道哪些用户是从 android 平台注册的 同样也是从 iOS 平台注册的 有办法知道吗 可能没有办法直接找到android用户和iOS用户 你必须
  • 如何使 .NET COM 对象成为单元线程?

    NET 对象默认是自由线程的 如果通过 COM 编组到另一个线程 它们总是会编组到自己 无论创建者线程是否为 STA 也无论它们的线程如何ThreadingModel注册表值 我怀疑 他们汇总了免费线程封送拆收器 http support
  • 关于如何将 JSON 消息转换为 ASN.1 的想法

    我正在尝试将 JSON 消息转换为 ASN 1 我的目标是将 JSON 从wire shark 捕获 转换为 ASN 1 然后将 asn1 转换为 802 11p 我应该研究哪些想法或资源 我正在使用Python 3 7 您可以使用此工具将
  • 数据源的驱动程序类的名称丢失(Netbeans+ PostgreSql + Glassfish)

    我正在尝试在 Postgres 9 2 db 和 Glassfish 4 服务器上使用 Netbeans 8 开发 EJB 应用程序 在 glassfish 管理面板中创建连接池和 JDBC 资源后 我无法使用数据源添加实体 Netbean
  • 如何捕获在 C# 中的 DataGridView 上触发“CellEndEdit”的击键?

    我有一个设置为 EditOnF2 的 DataGridView 我在 CellEndEdit 事件处理程序中对数据进行了一些特殊处理 以设置单元格的值 我仍然希望 EditOnKeyStrokeOrF2 的功能能够在按下 Esc 键时恢复到
  • Gensim LDA 主题分配

    我希望使用 LDA 将每个文档分配给一个主题 现在我意识到您得到的是 LDA 主题的分布 然而 正如您从下面最后一行看到的 我将其分配给最有可能的主题 我的问题是这样的 我必须跑lda corpus 有点第二次为了获得这些主题 是否有其他内
  • 可从 mdpi 加载而不是 hdpi 中绘制

    我已经使用不同的可绘制目录 ldpi mdpi 和 hdpi 设置了我的项目 我有一个具有两种不同分辨率的背景png drawable mdpi 文件夹中的320x480 和drawable hdpi 中的480x800 两者具有相同的文件
  • 如何在 jQuery jTable 中上传图像

    我在 jQuery jTable 的创建模式下成功创建了一个上传字段 如下所示 upload title Upload Image input function data return
  • 没有地图的地理编码

    我可以在没有地图的情况下使用 Google 地图地理编码 API 吗 我有一个带有自动完成功能的文本框 Google Maps API Place 我希望在用户输入街道号码后 我会得到邮政编码 问候 自动完成是允许在没有地图的情况下使用 G
  • 如何通过 PHP 获取字符串形式的 HTML 页面?

    我正在通过 PHP 从网页中获取一些信息simple php dom和卷曲 问题是页面构建不正确 因此 DOM 对象包含错误信息 如何获取 HTML 文件作为 PHP var 中的字符串 以便我可以通过它运行正则表达式 Curl 不起作用
  • 为页面创建新应用程序

    我有一个个人 FB 帐户 从那里我创建了一个新页面来介绍我的博客网站 我在我的网站上下载了一个适用于我的 WordPress 主题的小部件 以便我可以链接两个帐户以进行自动更新 该小部件要求我通过创建新应用程序提供应用程序 ID 和密钥 当
  • FMDB SQLite 问题:查询的行数?

    有谁知道如何在使用 FMDB 时返回查询计数 如果我执行Query select count from sometable were 我会得到一个空的FMResultSet 如何获取查询的行数 我是否需要执行 select from som
  • 使用 XMLHttpRequest 不使用 jQuery 将 JSON 数据发送到 PHP

    我正在尝试使用 XMLHttpRequest 对象从表单发送 JSON 数据 我可以使用以下函数发送数据 FireBug 中没有显示任何错误 并且 FireBug 可以很好地显示请求中的 JSON 数据 但是 我将数据发送到echo php
  • iOS 8 中的嵌套 UICollectionViews、自动布局和旋转

    我开始在一个大型项目中使用 AutoLayout 并对它感到非常惊讶 但是 现在我必须调整项目以适应旋转和尺寸类别 并且我在让视图正确运行方面遇到了很大的麻烦 基本问题是我有UICollectionViews with 再次包含 UICol