我有一个嵌入了两个容器和一个文本字段的UIViewController。到目前为止,当用户点击文本字段时,整个屏幕都会向上移动,这样键盘就可以在不覆盖容器下部的情况下安装。
这就是我故事板上的样子:
ios - 用户 swift 显示屏幕键盘时,如何向上移动容器?-LMLPHP
我的代码如下:

override func viewDidLoad() {
    super.viewDidLoad()
    let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
     //    view.addGestureRecognizer(tap)

    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillChangeFrameNotification, object: nil)

}

func keyboardWillShow(notification: NSNotification) {
    if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {

        if(isKeyboardShown == false){
            realKeyboardSize = CGRect(x: keyboardSize.origin.x, y: keyboardSize.origin.y, width: keyboardSize.width, height: keyboardSize.height)
            isKeyboardShown = true
            self.view.frame.origin.y -= realKeyboardSize!.height
        }else{
            isKeyboardShown = false
            self.view.frame.origin.y += realKeyboardSize!.height

        }
    }
}

是否可以向上移动较低的容器而不是整个屏幕?
我想它是这样工作的:
topContainer保持原样,lowerContainer向上移动,使其一半隐藏在topContainer后面,键盘可见。当用户隐藏键盘时,一切都恢复正常。

最佳答案

如果使用的是autolayout,则可以通过更改底部约束运行时来实现此目的
这是您的层次结构和相关约束。。
ios - 用户 swift 显示屏幕键盘时,如何向上移动容器?-LMLPHP
关于它的工作原理和设置方法,请检查this link
如果你不明白

关于ios - 用户 swift 显示屏幕键盘时,如何向上移动容器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36713674/

10-11 19:49
查看更多