为什么iOS动画在第一次运行时会变慢?

时间:2011-11-07 23:58:19

标签: iphone ios performance animation

在我看来,第一次运行动画(动画UIView的框架,或者CALayer的位置等)时,它非常不稳定,随后的动画很流畅。

导致这种情况的原因是什么,有没有办法预先缓存动画?

注意:这个问题与这个问题非常相似:UIImageView animations lag at first run,但我的动画中没有使用UIImages。

3 个答案:

答案 0 :(得分:2)

如果您有TextField,我认为是接收您的用户输入的内容。使用UITextFieldDelegate方法Did而非Should

- (void)textFieldDidBeginEditing:(UITextField *)textField
{     
//Do textfield animations and other view animations here

}

不要进行动画制作;

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{     
//Don't do textfield animations and other view animations here     
//This is where the system does its own animations; raising the keyboard, etc     
}

答案 1 :(得分:0)

假设您使用[UIImage imageNamed: @"herp.png"],图像将被缓存。如果图像被大量绘制,它将被解压缩到内存中,否则它会对图像进行延迟加载并导致断断续续。

答案 2 :(得分:0)

viewDidAppear中运行,而不是viewWillAppear。图像出现后应该进行缓存,对用户看起来应该是相同的。