由于方向改变,我希望覆盖我的UICollectionViewFlowLayout
以使细胞在更改位置时滑动。我现在拥有的是每行3个单元格,每行4个单元格,但我唯一可以获得的动画是当我改变方向时默认的淡入淡出。
我一直在考虑使用performBatchUpdates
,但我很确定这不是我能找到答案的地方。
我也一直在研究layoutAttributesForElementInRect
和layoutAttributesForItemAtIndexPath
,我认为这是我能找到答案的地方。我不确定是否需要为单元格创建一个新属性(可能是previousCenter
)并将其用作新动画的起点,或者可以使用performBatchUpdates
使用新的属性框架作为要改变的价值。
为了记录我发现的所有动画问题都是关于如何更改插入和删除项目的动画,这不是我想要做的。
答案 0 :(得分:0)
尝试
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:( NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[self.collectionView reloadData];
}
然后在此时添加“滑动”它所需的任何内容。
如果您正在使用flowLayout或它的子类,它应该自动为您重新定位单元格。如果您子类化布局,则可能需要调整返回的layoutattributes以对应于旋转。动画应该为你完成。