所以,我有一个UICollectionView,我插入新项目。
我使用了Collection View Programming Guide - “让插入和删除动画更有趣”部分中的大多数建议
有没有办法调整动画时间? (也许我只是在文档中错过了它,但找不到任何关于此的信息)
PS:如果我可以编辑那些很酷的曲线。你知道Ease-In-Out等等。
答案 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