如何停止UITextField.rightView的动画?

And*_*rew 7 iphone objective-c uitextfield ios rightview

在我的UITextField上,rightView属性在显示时从左侧动画(滑入).

我不确定如何阻止这种行为发生?

小智 16

我最近在iOS8上发生过这种情况.

事实证明,rightView的初始位置相对于UITextField为(0,0),当它第一次显示时,它会被设置为正确的位置.如果同时显示键盘,则rightView的位置会以某种方式与键盘的动画一起动画.如果打开慢动画,您可以在模拟器中清楚地看到这一点.

解决方案是在键盘动画开始之前将rightView设置为其最终位置.例如,在viewDidLoad或viewWillAppear中,调用

textField.rightView.frame = [textField rightViewRectForBounds:textField.bounds]
Run Code Online (Sandbox Code Playgroud)

  • 将其转储到layoutSubviews()中并解决了我的问题。谢谢! (3认同)
  • 我的需要在layoutSubview()中设置它,因为我的自定义视图是用矩形大小(0,0)实例化的。 (2认同)

Adi*_*mro -2

你可以玩弄rightViewMode财产

textField.rightViewMode = UITextFieldViewModeAlways;
Run Code Online (Sandbox Code Playgroud)

有以下模式可供选择:

UITextFieldViewModeNever,
UITextFieldViewModeWhileEditing,
UITextFieldViewModeUnlessEditing,
UITextFieldViewModeAlways
Run Code Online (Sandbox Code Playgroud)