UIView动画VS核心动画

2024-03-31

我正在尝试制作一个视图的动画,该视图滑入视图并在到达屏幕侧面后弹跳。

我正在做的幻灯片的基本示例如下:

// The view is added with a rect making it off screen.
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.07];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
[theView setFrame:CGRectMake(-5, 0, theView.frame.size.width, theView.frame.size.height)];
[UIView commitAnimations];

然后在didStopSelector中调用更多的动画来制作弹跳效果。问题是,当多个视图被动画化时,弹跳会变得不稳定,并且不再弹跳。

在我开始阅读如何在核心动画中执行此操作之前(我知道这有点困难),我想知道使用核心动画而不是 UIView 动画是否确实具有优势。如果没有,我可以做些什么来提高性能吗?


使用核心动画(基于图层),您可以做很多高级的事情,例如 3D 动画(将视图嵌入 3D 空间)。

UiView 动画非常强大,除非您拥有足够多的动画,否则不应该成为性能瓶颈。我在你的代码中只看到一个例子,而且它的持续时间非常短。事实上,您几乎是立即设置帧属性(70 毫秒是 14 fps)。您应该从开始、结束和整个距离的持续时间(通常为 0.2 秒到几秒)来考虑 UIView 动画。它的设计初衷并不是为了播放一个又一个的微动画。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIView动画VS核心动画 的相关文章

随机推荐