如何在 iOS 中获得最流畅的动画?
Posted
技术标签:
【中文标题】如何在 iOS 中获得最流畅的动画?【英文标题】:How do I get the smoothest animation possible in iOS? 【发布时间】:2012-10-19 21:43:09 【问题描述】:我正在使用UIView
方法animateWithDuration:animations
为滑动UIView
设置动画。它看起来有点波涛汹涌。有没有更好的方法,比如 CoreGraphics,可以实现更流畅的动画?
【问题讨论】:
如果您所做的只是滑动视图,animateWithDuration 是一个非常好的选择,并且应该提供合适的结果。如果它看起来波涛汹涌,那么您可能还遗漏了另一个问题。另一种动画方法是使用 CABasicAnimation 之类的东西,当您移动层的位置属性(或 CALayer 的另一个可动画属性)时,它可能会添加到您尝试动画/滑动的视图层中。 您应该查看该视图有多少子视图(标签、图像等)都计入其开销。如果这些视图不透明,则动画性能可能会受到影响。还要小心使用较旧或蹩脚的图形卡在 Mac 上的模拟器中测试动画性能。我见过 Retina Simulator 有断断续续的动画,但在实际设备上动画很流畅。 请注意,ios Core Animation 在模拟器上通常很不稳定,但在设备上运行流畅。确保在设备上进行测试。还要确保你测试你的应用程序运行时没有绑定到 Xcode,因为调试器会减慢速度。 【参考方案1】:您可以尝试使用不同的UIViewAnimationOptions
默认是UIViewAnimationOptionCurveEaseInOut
,但是你可以试试其他的:
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationOptionCurveEaseOut
animations:^
v.center = CGPointMake(400, 400);
completion:^(BOOL finished)
];
【讨论】:
以上是关于如何在 iOS 中获得最流畅的动画?的主要内容,如果未能解决你的问题,请参考以下文章