如何从 UICollectionViewFlowLayout 为 itemSize 设置动画?

Posted

技术标签:

【中文标题】如何从 UICollectionViewFlowLayout 为 itemSize 设置动画?【英文标题】:how to animate itemSize from UICollectionViewFlowLayout? 【发布时间】:2013-09-30 07:39:21 【问题描述】:

我正在使用UICollectionView 在多行和多列上显示一组图形。用户可以使用pinchGesture进行放大/缩小。

当用户放大图表大小增加并且用户缩小图表大小减小。要更改图形的大小,我只需将属性 itemSizeUICollectionViewFlowLayout 更改。效果很好,但我无法使用以下代码为更改设置动画:

    [UIView transitionWithView:self.theCollectionView
                  duration:0.5f
                   options:UIViewAnimationOptionCurveLinear
                animations:^() 
                    _theFlowLayout.itemSize = cellSize;
                
                completion:nil];

知道如何制作这种变化的动画吗?

问候,

塞巴斯蒂安。

【问题讨论】:

【参考方案1】:

您可以使用集合视图的performBatchUpdates 方法,该方法将使您的布局无效并重新查询,并为任何新值设置动画。

类似这样的:

_theFlowLayout.itemSize = cellSize;
[self.theCollectionView performBatchUpdates:nil completion:nil];

很遗憾,您无法控制动画的时间或曲线。

【讨论】:

以上是关于如何从 UICollectionViewFlowLayout 为 itemSize 设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

未应用 nib 约束的集合视图单元格

带有分页的 UICollectionView - 设置页面宽度

尽管实现了 sizeForItemAt,但 UICollectionViewFlowLayout 单元格大小永远不会改变

如何从其他面板从 JTextField 获取输入

如何从外部从 GitHub 加载 JavaScript 文件? [复制]

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数