0

我正在寻找覆盖我UICollectionViewFlowLayout以在由于方向变化而改变位置时导致单元格滑动。我目前拥有的是纵向每行 3 个单元格和横向每行 4 个单元格,但我能得到的唯一动画是当我改变方向时默认淡入。

我一直在考虑使用performBatchUpdates,但我很确定这不是我能找到答案的地方。

我也一直在研究layoutAttributesForElementInRectlayoutAttributesForItemAtIndexPath我认为这是我可以找到答案的地方。我不确定是否需要为单元格创建一个新属性(previousCenter也许)并将其用作新动画的起点,或者可能使用performBatchUpdates应该是新帧的值作为要更改的值。

为了记录,我发现的所有动画问题都是关于如何更改动画以插入和删除项目,这不是我想要做的。

4

1 回答 1

0

尝试

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(    NSTimeInterval)duration {
    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
    [self.collectionView reloadData];
}

然后添加你需要的任何东西来“滑动”它。

如果您使用的是 flowLayout 或其子类,它应该会自动为您重新定位单元格。如果您使用子类布局,您可能需要调整您返回的布局属性以对应于旋转。动画应该为你完成。

于 2013-04-04T15:30:09.373 回答