在布局之间制作动画时,自动布局不会调整 Uicollectionviewcell 项目的大小
Posted
技术标签:
【中文标题】在布局之间制作动画时,自动布局不会调整 Uicollectionviewcell 项目的大小【英文标题】:Autolayout is not resizing Uicollectionviewcell items when animating between layouts 【发布时间】:2013-12-30 10:18:18 【问题描述】:我有一个 uicollectionview 单元格,里面有一个图像视图,当我切换到更大的“放大”布局时,我想调整它的大小。
我在单元格内放置了约束,当显示放大的布局时,它会调整图像视图的大小。我正在使用 uicollectionview setLayout 动画方法。
问题是图像不随动画缩放,只有集合视图单元格可以。
图像似乎只是跳到它的最终尺寸,没有插值。所以动画看起来非常不稳定。
似乎我需要以某种方式控制自动布局约束,以便它们使用设置布局动画方法进行动画,但我不知道如何。
是否有适当的方法来缩放单元格及其内容?
非常感谢!
【问题讨论】:
【参考方案1】:我在使用自动布局时遇到了(有)同样的问题!
目前我发现处理它的最简单方法是设置:
imageView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
这会导致 imageView 大小转换的动画流畅,并且是我发现的唯一与 setCollectionViewLayout:animated 一致的工作:
【讨论】:
【参考方案2】:您可能会发现 this answer 和我为解决类似问题而编写的链接 GitHub 演示应用程序很有帮助。
【讨论】:
以上是关于在布局之间制作动画时,自动布局不会调整 Uicollectionviewcell 项目的大小的主要内容,如果未能解决你的问题,请参考以下文章
使用自动布局时使用 UIDynamicAnimator 制作动画
通过切换布局触发的动画 UICollectionView 单元格调整大小