UITextField 光标从上到下动画然后文本也被动画

Posted

技术标签:

【中文标题】UITextField 光标从上到下动画然后文本也被动画【英文标题】:UITextField cursor animated top to down then text also being animated 【发布时间】:2015-01-05 07:00:16 【问题描述】:

我正在使用 ios 应用程序中的注册表单。当文本字段开始编辑光标时,有几个文本字段,例如名称、电子邮件、城市等,看起来像动画一样。键入字母后,光标从上到下慢慢地从左到右移动。我需要停止这个不需要的动画。我正在使用 TPKeyboardAvoiding scrollview 在键盘弹出时滚动视图。我在没有 TPKeyboardAvoiding 的情况下检查了它,但同样的事情发生了。

【问题讨论】:

UITextField的superview是什么? uiviewcontroler 只是 uitextfield 的超级视图 我用 tpkeyboard 关键字搜索过,但没有相关链接 在下面查看我的答案。 【参考方案1】:

我也遇到了同样的问题,调试后发现这个奇怪的动画是因为

- (void)TPKeyboardAvoiding_keyboardWillShow:(NSNotification*)notification 
    //...
    [self layoutIfNeeded];
    //...


- (void)TPKeyboardAvoiding_keyboardWillHide:(NSNotification*)notification 
    //...
    [self layoutIfNeeded];
    //...

我可以通过删除[self layoutIfNeeded]; 方法调用来解决这个问题。我不知道这个解决方案是否会影响其他任何东西。

【讨论】:

【参考方案2】:

我怀疑动画来自TPKeyboardAvoiding 库。我的应用程序(注册)中也有相同的屏幕并使用相同的库。但是,我将我的文本字段放在自定义 UITableViewCell 中,并有一个 UITableView 用于注册。这样代码更少,代码更干净。我禁用UITableView 上的滚动,以便UIScrollView 正确接收触摸。

我建议这样做。

【讨论】:

我删除了 TPKeyboardAvoiding,但仍然没有变化 你有没有在实际设备上试过这个,看看它是否做同样的事情? 感谢@tander 的回答,问题不是因为tpkeyboard。我忘了删除uiviewanimations。我使用 uiviewanimations 作为 tpkeyboard 的替代品【参考方案3】:

在您开始更改视图中的任何动画属性之前,请调用 superview.layoutIfNeeded()(或 self.view.layoutIfNeeded(),具体取决于您的代码上下文)。这允许超级视图在您进行自己的布局更改并提交动画之前完成自己的布局更改(如果有)。 (如果外部库正在应用自己的动画,这可能很难追踪。)

【讨论】:

为什么投反对票?请参阅 Apple 文档中的“通过自动布局进行动画更改”:developer.apple.com/library/ios/documentation/UserExperience/…

以上是关于UITextField 光标从上到下动画然后文本也被动画的主要内容,如果未能解决你的问题,请参考以下文章

如何从上到下创建 UINavigationController 动画 [重复]

使活动从上到下动画

悬停时从上到下动画图像[关闭]

JS/CSS 全屏幕导航 – 从上到下动画

从上到下均匀裁剪图像

如何在像快门一样从上到下加载时为 UIView 设置动画?