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

先上效果

效果图

用到的变量

 @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)
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值