我有一个视图,我有6个文本字段,但是我想在单击最后一个文本字段时向上移动视图,我可以在上一个文本字段中输入值。
这是我的代码,但它适用于所有文本字段: -
func animateViewMoving (up:Bool, moveValue :CGFloat){
let movementDuration:TimeInterval = 0.3
let movement:CGFloat = ( up ? -moveValue : moveValue)
UIView.beginAnimations("animateView", context: nil)
UIView.setAnimationBeginsFromCurrentState(true)
UIView.setAnimationDuration(movementDuration)
self.view.frame = self.view.frame.offsetBy(dx: 0, dy: movement)
UIView.commitAnimations()
}
因此,对于特定的textField,我如何向上移动视图(键盘大小)
由于
答案 0 :(得分:0)
c
答案 1 :(得分:0)
试试这个 -
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == lastTextField{
view.frame.origin.y -= 50 //Or 100, 200 as you required
performAction()
}
}
func performAction() {
lastTextField.becomeFirstResponder()
otherTextField.resignFirstResponder()
}
答案 2 :(得分:0)
假设您正在使用autoLayout
我想象你所有的UITextField
都出现在一个单独的UIScrollView
中。此外,UISCrollView
将对其superView具有底部约束。为此底部间距垂直约束创建一个IBOutlet
到其超级视图。
注意:即使不在UIScrollView
范围内,也可以通过简单地采用最低UITextField
的底部约束来实现此目的,但这会强制您的其他{{1}屏幕外,所以最好把它放在UITextFields
。
在UIScrollView
设置观察器中,如下所示 -
viewDidLoad