9

所以,我有一个 UICollectionView 我在其中插入新项目。

我使用了Collection View Programming Guide中的大部分建议- “使插入和删除动画更有趣”部分

有没有办法调整动画时间?(也许我只是在文档中错过了它,但找不到任何相关信息)

PS:如果我可以编辑曲线也很酷。你知道 Ease-In-Out 等等。

4

3 回答 3

25

您可以使用 CALayer 更改任何动画速度。所以对于 UICollectionView 这看起来像下面这样:

[self.collectionView.viewForBaselineLayout.layer setSpeed:0.1f];

你可以改回原来的速度:

[self.collectionView.viewForBaselineLayout.layer setSpeed:1.0f];

为此,您可能需要导入 QuartzCore:

#import <QuartzCore/QuartzCore.h>
于 2013-08-22T23:00:35.630 回答
6

或者只是做

[UIView animateWithDuration:0.5f animations:^(void) {
  [self.collectionView insertItemsAtIndexPaths:@[newIndexPath]];
}];

动画持续时间会影响集合视图插入动画的内部持续时间。

于 2014-06-19T03:33:11.743 回答
3

您无法使用 Apple 提供的布局方法调整动画。如果要自定义动画,则需要通过属性隐藏项目(仅显示和空白空间),自己制作动画,然后在动画结束时通过属性将项目弹出回。

我问了一个关于自定义移动动画的类似问题,但共识就是我所描述的。如果需要,请为自己制作动画。

这个问题展示了如何做一个自定义删除动画,自定义插入应该是类似的:UICollectionView Horizo​​ntal scrolling, deleted last item, animation not working

于 2013-08-22T06:08:42.303 回答