我正在尝试使用不同的动画将一个复杂视图替换为另一个复杂视图,例如移动到左/右/上/下。第一个和第二个视图包含 30-40 个子视图(按钮)。我的代码是这样的:
oldView.alpha = 1;
newView.alpha = 0;
oldView.frame = CGRectMake(0, 0, width, height);
newView.frame = CGRectMake(0, -height, width, height);
// begin animation
// setting duration 0.3
// ...
oldView.alpha = 0;
newView.alpha = 1;
oldView.frame = CGRectMake(0, height, width, height);
newView.frame = CGRectMake(0, 0, width, height);
// commit animation
// ...
它在iPhone Simulator和iPhone 4S上运行良好,但在iPhone 4上运行滞后。延迟是指 12-15 FPS。
我怎样才能加快这个动画?
- 我应该使用
center
property 而不是frame
? - 我应该将我的观点渲染为
UIImageView
's 并为其设置动画吗? - 我应该布局我的视图
UIScrollView
并打电话scrollRectToVisible:animated:
吗?
请解释一下为什么我的动画代码这么慢?当我的两个视图包含 10-20 个按钮时 - 速度没有问题......