我想用另一个复杂的视图替换一个复杂的视图,使用不同的动画,如移动到左/右/顶部/底部。第一个和第二个视图包含30-40个子视图(按钮)。我的代码是这样的:iOS核心动画加速
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模拟器和iPhone 4S的,但是它滞后于iPhone 4。迟到我的意思是12-15 FPS。
我该如何加快这个动画?
- 我应该使用
center
属性而不是frame
? - 我是否应该将视图渲染到
UIImageView
并对其进行动画制作? - 我是否应该在
UIScrollView
中布置我的视图并致电scrollRectToVisible:animated:
?
请解释我为什么我的动画代码如此缓慢?当我的两个视图中包含10-20个按钮时 - 速度没有问题...
我的意见有7 * 5矩阵按钮粗体系统字体只有'shadowOffset(0,1)'。我正在尝试实现自定义日历控件。 – k06a
为了测试,请取下阴影,看看这是否可以提高性能。如果是这样,您可以使用shouldRasterize属性并将其设置为yes。这会停止每帧重新调整的阴影。 –
你是指每个按钮标题图层的shouldRasterize属性?有趣的财产... – k06a