gpt4 book ai didi

ios - 如何正确设置分页 UICollectionView 大小变化的动画

转载 作者:行者123 更新时间:2023-11-30 11:41:09 26 4
gpt4 key购买 nike

我有一个类似于 iPad Keynote 的 iPad 应用程序,左侧有一个狭窄的概述,右侧是我的“幻灯片”的分页 UICollectionView。 Collection View 使用默认的 FlowLayout。其中一些幻灯片是标准 PDF,一些是已缩放(使用 CGAffineTransform)并嵌入到单元格中的嵌入式 UIViewController。我想在屏幕外平滑地制作概述侧边栏的动画,并将当前页面单元格缩放到全屏。 Collection View 应该允许以任何大小进行分页滑动。我正在使用 Storyboard和自动布局。

我认为我需要同时为三件事制作动画:

  • Collection View 约束(侧边栏)以放大/缩小它
  • 流布局的 sizeForItemAt:
  • 嵌入式 View Controller 上的CGAffineTransform

我有一些工作(一个可以正确缩放的单个嵌入式 View Controller “幻灯片”),但无法让 collectionView/cell 调整大小舞蹈正常工作。单元格调整大小动画不稳定,或者最终偏移量错误,或者适用于最左边的单元格,但不适用于其他单元格。

我已尝试了 this question 的答案中的大部分建议但没有取得令人信服的成功。我不敢相信这是不可能的,但此时我正在考虑烟雾和镜子的方法,对静态幻灯片进行动画处理并在动画完成后将其隐藏。附加的视频 - 忽略小故障 - 说明了我想要的效果:

enter image description here

值得注意的是,经过仔细检查,Keynote 在编辑模式下的幻灯片之间滑动时存在一定程度的作弊,并手动管理屏幕上滑动的下一张幻灯片,因此可能不使用 UICollectionView .

有没有人做过类似的事情,或者有什么可以尝试的建议?

最佳答案

我设法解决了这个问题。有一个概念验证 GitHub 存储库 here .

有一些移动部分:

  • 有两段UIView缩放代码。我怀疑这些可以与合适的委托(delegate)引用结合起来,因为嵌套 View Controller 是嵌入的。创建 Collection View 单元格时,第一 block 会正确(静态)缩放。第二个是当侧边栏大小更改时的动画缩放/平移。

  • 我添加了一个 FlowLayout 子类来消除闪烁,因为集合的布局在缩放期间无效。

  • 顶层 VC 中与侧边栏相关的转换使用了书中的大部分技巧 - invalidateLayout()performBatchUpdates(...)layoutIfNeeded() 等,以及将 contentOffset 动画化为正确的值。需要对正确的页面/幻灯片进行一些手动跟踪。

  • 开始调整大小时偶尔仍然会出现轻微闪烁。对于我的特定配色方案来说,这可能不是问题,因为我的配色方案是深灰色的黑色。如果有人能建议如何追踪或缓解这个问题,那就加分了。

关于ios - 如何正确设置分页 UICollectionView 大小变化的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49276416/

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