如何提高卡顿的UIView动画性能

3

我正在尝试在当前视图控制器和下一个视图控制器之间应用翻转过渡效果。虽然它能正常工作,但有明显的延迟(非常明显)。因此,我想问一下,你们是否有任何建议/解决方案来改善这种从一个视图控制器翻转到另一个视图控制器的UIView动画?

这是我的一部分代码,感谢您的阅读,非常感谢任何有益的评论/建议。谢谢

[UIView animateWithDuration:0.50 delay:0.00 options:0 animations:^{
    [self.navigationController pushViewController:viewController animated:NO];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
} completion:^(BOOL finished) {

}];
1个回答

6
问题并不在于你如何调用动画,而是与视图绘制代码有关。如果你优化了这些控制器中视图渲染所需的逻辑和时间,我保证你将在它们之间的动画中看到更好的性能。
你可以尝试打开当前设置为NO的cache参数,以查看是否有助于短期内的性能,但这只是一种临时方法,而非治本。
另外,最佳情况下60fps的帧率下,0.5秒的动画最多只会有30帧可供使用。如果你稍微增加动画持续时间,在视图渲染进行优化后,它将显得更加流畅。

1
+1 还想在你的回答中添加这个建议 理解 iOS 视图合成(实现流畅动画的技巧) - 0x8badf00d

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接