所以,我有一个 UICollectionView 我在其中插入新项目。
我使用了Collection View Programming Guide中的大部分建议- “使插入和删除动画更有趣”部分
有没有办法调整动画时间?(也许我只是在文档中错过了它,但找不到任何相关信息)
PS:如果我可以编辑曲线也很酷。你知道 Ease-In-Out 等等。
所以,我有一个 UICollectionView 我在其中插入新项目。
我使用了Collection View Programming Guide中的大部分建议- “使插入和删除动画更有趣”部分
有没有办法调整动画时间?(也许我只是在文档中错过了它,但找不到任何相关信息)
PS:如果我可以编辑曲线也很酷。你知道 Ease-In-Out 等等。
您可以使用 CALayer 更改任何动画速度。所以对于 UICollectionView 这看起来像下面这样:
[self.collectionView.viewForBaselineLayout.layer setSpeed:0.1f];
你可以改回原来的速度:
[self.collectionView.viewForBaselineLayout.layer setSpeed:1.0f];
为此,您可能需要导入 QuartzCore:
#import <QuartzCore/QuartzCore.h>
或者只是做
[UIView animateWithDuration:0.5f animations:^(void) {
[self.collectionView insertItemsAtIndexPaths:@[newIndexPath]];
}];
动画持续时间会影响集合视图插入动画的内部持续时间。
您无法使用 Apple 提供的布局方法调整动画。如果要自定义动画,则需要通过属性隐藏项目(仅显示和空白空间),自己制作动画,然后在动画结束时通过属性将项目弹出回。
我问了一个关于自定义移动动画的类似问题,但共识就是我所描述的。如果需要,请为自己制作动画。
这个问题展示了如何做一个自定义删除动画,自定义插入应该是类似的:UICollectionView Horizontal scrolling, deleted last item, animation not working