我正在使用自定义布局来定位我的 UICollectionViewCells,如下所示:
这很好用。现在,当我按下左下角的按钮时,我想让所有单元格动画地返回到视图的中心,如下所示:
我有这个工作,但它根本没有动画。它只是以那种方式弹出。这是我用于重新加载操作的代码:
- (IBAction)animate:(id)sender {
[self.collectionView performBatchUpdates:^{
[self.collectionView reloadSections:[NSIndexSet indexSetWithIndex:0]];
} completion:nil];
}
在我的布局类中,我有一个标志,每次调用 prepareLayout 时都会翻转它,它会layoutAttributesForItemAtIndexPath
像这样调整单元格的中心:
- (UICollectionViewLayoutAttributes*) layoutAttributesForItemAtIndexPath:(NSIndexPath *)path {
UICollectionViewLayoutAttributes *attributes = [UICollectionViewLayoutAttributes layoutAttributesForCellWithIndexPath:path];
attributes.size = CGSizeMake(ITEM_SIZEw, ITEM_SIZEh);
if (self.isCircle) {
attributes.center = CGPointMake(_center.x +_radius *
cosf(2 * path.item * M_PI / _cellCount),
_center.y + _radius *
sinf(2 * path.item * M_PI/ _cellCount));
} else {
attributes.center = [self collectionView].center;
}
return attributes;
}
如何将单元格移动回视图中心?