在我看来,第一次运行动画(动画UIView的框架,或者CALayer的位置等)时,它非常不稳定,随后的动画很流畅。
导致这种情况的原因是什么,有没有办法预先缓存动画?
注意:这个问题与这个问题非常相似:UIImageView animations lag at first run,但我的动画中没有使用UIImages。
答案 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
。图像出现后应该进行缓存,对用户看起来应该是相同的。