美文网首页
swift3.0 获取键盘高度,并让UITextView自动随键

swift3.0 获取键盘高度,并让UITextView自动随键

作者: JokAr_ | 来源:发表于2017-08-07 17:39 被阅读688次

    先上效果

    效果图

    用到的变量

     @IBOutlet weak var textView: UITextView!
        
     //mark: 记录UITextView的原始高度
     var textViewHeight: CGFloat!
    

    viewDidLoad

    //获取原始位置
    textViewHeight = textView.frame.origin.y
    
    //注册监听
    NotificationCenter.default.addObserver(self, selector: #selector(handleKeyboardDisShow(notification:)), name: NSNotification.Name.UIKeyboardDidShow, object: nil)
    

    handleKeyboardDisShow

     //mark: 当键盘显示时
        func handleKeyboardDisShow(notification: NSNotification) {
            //得到键盘frame
            let userInfo: NSDictionary = notification.userInfo! as NSDictionary
            let value = userInfo.object(forKey: UIKeyboardFrameEndUserInfoKey)
            let keyboardRec = (value as AnyObject).cgRectValue
    
            let height = keyboardRec?.size.height
    
            //让textView bottom位置在键盘顶部
            UITextView.animate(withDuration: 0.1, animations: {
                var frame = self.textView.frame
                frame.origin.y = height!
                self.textView.frame = frame
            })
    
        }
    

    textFieldShouldReturn

    //mark: 输入框enter回车事件
        func textFieldShouldReturn(_ textField: UITextField) -> Bool {
            textField.resignFirstResponder()
    
            //让textView bottom位置还原
            UITextView.animate(withDuration: 0.1, animations: {
                var frame = self.textView.frame
                frame.origin.y = self.textViewHeight
                self.textView.frame = frame
            })
            return true
        }
    

    注销监听

    deinit {
            //移除监听
            NotificationCenter.default.removeObserver(self)
        }
    
    

    相关文章

      网友评论

          本文标题:swift3.0 获取键盘高度,并让UITextView自动随键

          本文链接:https://www.haomeiwen.com/subject/pzpalxtx.html