美文网首页iOS开发
scrollview键盘弹起时推起底部的textfield示例(

scrollview键盘弹起时推起底部的textfield示例(

作者: Lebus | 来源:发表于2018-10-06 16:51 被阅读211次
    import UIKit
    
    class ViewController: UIViewController ,UIScrollViewDelegate {
      @IBOutlet weak var fgScrollView: UIScrollView!
        
      override func viewDidLoad() {
        super.viewDidLoad()
    
        let center = NotificationCenter.default//默认通知中心
        //分别增加观察者以便监听两个事件--keyboardwillshow,keyboardwillhide
        center.addObserver(self, selector: #selector(keyboardWillShow(notification:)), name: Notification.Name.UIKeyboardWillShow, object: nil)
        
        center.addObserver(self, selector: #selector(keyboardWillHide(notification:)), name: Notification.Name.UIKeyboardWillHide , object: nil)
        
        }
        //控制器销毁的时候同时销毁观察者
        deinit {
            NotificationCenter.default.removeObserver(self)
        }
        
        //监听键盘显示事件
        @objc func keyboardWillShow(notification:Notification){
            //获取用户信息--字典类型
            let userInfo = notification.userInfo ?? [:]
            //获取键盘的高度
            let keyboardHeight = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).cgRectValue.height
            
            //设定scrollview的底部内边距(搜狗输入法的键盘有点bug,第一次弹出的时候实际键盘高度比获取到的要高,第二次就没问题。总之我还是加上个30吧)
            fgScrollView.contentInset.bottom = keyboardHeight + 30   
        }
        //监听键盘收起事件
        @objc func keyboardWillHide(notification:Notification){
            fgScrollView.contentInset.bottom = 0
        }
    
    }
    

    相关文章

      网友评论

        本文标题:scrollview键盘弹起时推起底部的textfield示例(

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