UICollectionView insertItem - >调整动画时间?

时间:2013-08-15 09:39:20

标签: iphone ios uikit uicollectionview

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

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

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

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

3 个答案:

答案 0 :(得分:25)

您可以使用CALayer更改任何动画速度。因此,对于UICollectionView,它看起来如下所示:

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

你可以改回原来的速度:

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

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

#import <QuartzCore/QuartzCore.h>

答案 1 :(得分:6)

或者只是做

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

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

答案 2 :(得分:3)

您无法使用Apple提供的布局方法调整动画。如果你想自定义动画你需要通过属性隐藏项目(只显示和空白空间),你自己做动画,动画结束时通过属性弹回项目。

我问了一个关于自定义移动动画的类似问题,但是我所描述的共识已经存在。如果需要,可以自己制作动画。

此问题显示如何自定义删除动画,自定义插入应该类似:UICollectionView horizontal scrolling, deleting last item, animation not working