我正在iOS应用程序中使用注册表单。当文本字段开始编辑光标看起来像动画时,有几个文本字段,如姓名,电子邮件,城市等。键入字母后,光标从上到下慢慢地从左向右移动。我需要停止这个不需要的动画。我正在使用TPKeyboardAvoiding scrollview在键盘弹出时滚动视图。我在没有TPKeyboardAvoiding的情况下检查了它,但发生了同样的事情。
答案 0 :(得分:2)
我遇到同样的问题,经过调试我发现这个奇怪的动画正在发生,因为
- (void)TPKeyboardAvoiding_keyboardWillShow:(NSNotification*)notification {
//...
[self layoutIfNeeded];
//...
}
- (void)TPKeyboardAvoiding_keyboardWillHide:(NSNotification*)notification {
//...
[self layoutIfNeeded];
//...
}
我可以通过删除[self layoutIfNeeded];
方法调用来解决此问题。我不知道这个解决方案是否影响其他任何事情。
答案 1 :(得分:1)
我怀疑动画来自TPKeyboardAvoiding
库。我的应用程序(注册)中也有相同的屏幕,并使用相同的库。但是,我将自己的文本字段放在自定义UITableViewCell
中,并注册了UITableView
。这样代码更少,更清晰。我禁用UITableView
上的滚动功能,以便UIScrollView
能够正确接收触摸。
我建议那样做。
答案 2 :(得分:0)
在开始更改视图中的任何可设置动画的属性之前,请调用superview.layoutIfNeeded()
(或self.view.layoutIfNeeded()
,具体取决于您的代码上下文)。这允许superview在您进行自己的布局更改并提交动画之前完成自己的布局更改(如果有)。 (如果外部库正在应用自己的动画,这可能很难追踪。)