ios - 第一次键盘出现时的动画有时不流畅

标签 ios animation uiview

我经常注意到,当键盘第一次出现时,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/

相关文章:

ios - 如何根据 UICollectionView 中的单元格数量更改 View 的大小

ios - 如何在XCODE中将UIView横向分成三个大小相等的 subview ?

android - 场景。在 View 下滑动过渡

ios - 在 Swift 4 中以编程方式将 UIImageView、UILabel 添加到 UIStackView

iphone - 传递方法 - Objective-C

ios - 带有 UIButtons 的下拉列表的 UIView 类 - 委托(delegate)/协议(protocol)问题?

objective-c - UIWebView 委托(delegate)中的 EXC_BAD_ACCESS

ios - xcode UITests 检查测试是否在真实设备上运行

javascript - 我如何在第一次迭代时反转 CSS3 动画(而不是第二次迭代)

javascript - 如何制作 HTML5 旋转列表/旋转轮选择器/选择器