键盘显示时,文本框架原点更改

时间:2015-07-30 10:26:48

标签: ios swift keyboard position landscape-portrait

我正在尝试在设备处于横向时更改文本框架原点。

在我的登录视图中,传递文本字段位于用户文本字段(Portrait)下方, 更改方向(横向)时,用户文本字段位于传递文本字段的左侧。

override func willAnimateRotationToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
        if(toInterfaceOrientation.isLandscape){                 
            labelPass.frame.origin.x = buttonEnter.frame.midX+5
            textfieldPass.frame.origin.x = buttonEnter.frame.midX+5

            labelUser.frame.origin.x = buttonEnter.frame.midX-textfieldUser.frame.width-5
            textfieldUser.frame.origin.x = buttonEnter.frame.midX-textfieldUser.frame.width-5

            labelUser.frame.origin.y = labelPass.frame.origin.y
            textfieldUser.frame.origin.y = textfieldPass.frame.origin.y
        }
    }

在iPhone 4中一切正常,但在iPhone 5版本8.4(横向)中,当显示键盘时,文本字段会丢失其位置并返回(通过用户文本字段下方的文本字段)。在故事板wAny hAny传递文本字段中,它位于用户文本字段下方。

我测试了这个

func keyboardWillShow(sender: NSNotification) {
    if(UIDevice.currentDevice().orientation.isLandscape){
        labelPass.frame.origin.x = buttonEnter.frame.midX+5
        textfieldPass.frame.origin.x = buttonEnter.frame.midX+5

        labelUser.frame.origin.x = buttonEnter.frame.midX-textfieldUser.frame.width-5
        textfieldUser.frame.origin.x = buttonEnter.frame.midX-textfieldUser.frame.width-5

        labelUser.frame.origin.y = labelPass.frame.origin.y
        textfieldUser.frame.origin.y = textfieldPass.frame.origin.y        
    }
 }

结果相同。

有什么想法吗?非常感谢所有人

0 个答案:

没有答案