【问题标题】:How do I get the smoothest animation possible in iOS?如何在 iOS 中获得最流畅的动画?
【发布时间】:2012-10-19 21:43:09
【问题描述】:

我正在使用UIView 方法animateWithDuration:animations 为滑动UIView 设置动画。它看起来有点波涛汹涌。有没有更好的方法,比如 CoreGraphics,可以实现更流畅的动画?

【问题讨论】:

  • 如果您所做的只是滑动视图,animateWithDuration 是一个非常好的选择,并且应该提供合适的结果。如果它看起来波涛汹涌,那么您可能还遗漏了另一个问题。另一种动画方法是使用 CABasicAnimation 之类的东西,当您移动层的位置属性(或 CALayer 的另一个可动画属性)时,它可能会添加到您尝试动画/滑动的视图层中。
  • 您应该查看该视图有多少子视图(标签、图像等)都计入其开销。如果这些视图不透明,则动画性能可能会受到影响。还要小心使用较旧或蹩脚的图形卡在 Mac 上的模拟器中测试动画性能。我见过 Retina Simulator 有断断续续的动画,但在实际设备上动画很流畅。
  • 请注意,iOS Core Animation 在模拟器上通常很不稳定,但在设备上运行流畅。确保在设备上进行测试。还要确保你测试你的应用程序运行时没有绑定到 Xcode,因为调试器会减慢速度。

标签: ios uiview core-animation core-graphics


【解决方案1】:

您可以尝试使用不同的UIViewAnimationOptions

默认是UIViewAnimationOptionCurveEaseInOut,但是你可以试试其他的:

[UIView animateWithDuration:1.0
                      delay:0.0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     v.center = CGPointMake(400, 400);
                 }
                 completion:^(BOOL finished) {

                 }
 ];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 2010-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多