我经常注意到,当键盘第一次出现时,UIView 动画在第一次 becomeFirstResponder 事件期间往往不流畅。我指的是随着键盘动画发生的动画,例如手动滚动 UIView 以使 textField 可见。动画在第一次执行后总是很流畅。
出现这种情况是否有技术原因?我在想,第一次运行时 UIView 动画可能会发生一些延迟加载或优化,然后存储在缓存中以供重用。有没有关于这方面的经验教训?如果这些观众不清楚,我可以尝试在测试项目中重新创建问题。
虽然这并不能回答为什么会发生这种情况,但它解释了如何解决它。
基本上,您需要在“DID”事件而不是“WILL”或“SHOULD”上制作动画。系统在“将/应该”事件期间执行其动画,因此显然发生了一些勾结。这不能解释为什么第一次运行和所有其他运行之间的行为不一致。
正如你们中的一些人一样,我认为我应该将动画放在“textFieldWillBeginEditing”中,因为我希望动画与键盘动画同时运行。幸运的是,将动画代码放入“DID”实际上仍然可以确保动画同时发生。极好的。
如果有人仍然对第一次和第二次运行之间的不一致有解释,我仍然会保留他的问题并奖励你一个赞成票和问题答案。谢谢!