我经常注意到,当第一次出现键盘时,UIView动画在第一个yesFirstResponder事件中通常不平滑。我指的是键盘动画中出现的动画,例如手动滚动UIView以使textField可见。第一次执行动画后,动画始终保持平滑。
是否存在技术原因导致情况如此?我在想第一次运行UIView动画时可能会有一些延迟加载或优化,然后存储在缓存中以供重用。有关于此的经验教训吗?如果这个观众不清楚,我可以尝试在测试项目中重新创建问题。
答案 0 :(得分:1)
虽然这不能回答为什么会发生这种情况,但它解释了如何解决这个问题。
Why are iOS animations slow the first time they are run?
基本上,你需要在“DID”事件上做动画而不是“WILL”或“应该”。系统在“将/应该”事件期间执行动画,因此显然会发生一些串通事件。这并不能解释为什么第一次运行和所有其他运行之间的行为不一致。
我想,就像你们中的一些人一样,我应该将动画放在“textFieldWillBeginEditing”中,因为我希望动画与键盘动画同时运行。幸运的是,将动画代码置于“DID”实际上仍然可以确保动画同时发生。太棒了。
如果有人仍然对第一次和后一次运行之间的不一致有解释,我仍然会打开他的问题并给你一个upvote和问题答案。谢谢!