如何从 UICollectionViewFlowLayout 为 itemSize 设置动画?
Posted
技术标签:
【中文标题】如何从 UICollectionViewFlowLayout 为 itemSize 设置动画?【英文标题】:how to animate itemSize from UICollectionViewFlowLayout? 【发布时间】:2013-09-30 07:39:21 【问题描述】:我正在使用UICollectionView
在多行和多列上显示一组图形。用户可以使用pinchGesture
进行放大/缩小。
当用户放大图表大小增加并且用户缩小图表大小减小。要更改图形的大小,我只需将属性 itemSize
从 UICollectionViewFlowLayout
更改。效果很好,但我无法使用以下代码为更改设置动画:
[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 设置动画?的主要内容,如果未能解决你的问题,请参考以下文章
带有分页的 UICollectionView - 设置页面宽度
尽管实现了 sizeForItemAt,但 UICollectionViewFlowLayout 单元格大小永远不会改变