当键盘出现时,如何将视图向上移动到最后一个文本字段?

时间:2016-12-13 12:19:50

标签: ios swift view keyboard uitextfield

我有一个视图,我有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,我如何向上移动视图(键盘大小)

由于

3 个答案:

答案 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