我经常注意到,当键盘第一次出现时,UIView 动画在第一个“becomeFirstResponder”事件期间通常不流畅。我指的是与键盘动画一起发生的动画,例如手动滚动 UIView 以使文本字段可见。第一次执行后动画总是很流畅。
出现这种情况有技术原因吗?我在想,第一次运行时 UIView 动画可能会发生一些延迟加载或优化,然后存储在缓存中以供重用。是否有这方面的经验教训?如果观众不清楚,我可以尝试在测试项目中重现该问题。
最佳答案
虽然这并没有回答为什么会发生这种情况的问题,但它解释了如何解决它。
Why are iOS animations slow the first time they are run?
基本上,您需要在“DID”事件而不是“WILL”或“SHOULD”事件上制作动画。系统在“将/应该”事件期间执行其动画,因此显然存在一些串通行为。这并不能解释为什么第一次运行和所有其他运行之间的行为不一致。
我想,就像你们中的一些人一样,我应该将动画放在“textFieldWillBeginEditing”中,因为我希望动画与键盘动画同时运行。幸运的是,将动画代码放在“DID”中实际上仍然可以确保动画同时发生。极好的。
如果有人仍然对第一次运行和后一次运行之间的不一致有解释,我仍然会保留他的问题,并给你一个赞成票和问题答案。谢谢!
关于ios - 第一次键盘出现时的动画有时不流畅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007744/