美文网首页
iOS IQKeyboardManager 管理非ViewCon

iOS IQKeyboardManager 管理非ViewCon

作者: 東玖零 | 来源:发表于2021-01-19 18:24 被阅读0次

    前提:我在self.navigationController?.view上加遮罩层,遮罩层上有输入框。
    现像:当输入时self.view有变化,当前输入框和它的父view却不化变化。

    思路1:IQKeyboardManager这个库是不是有可以添加指定响应view或controller,网上种找,国内全是抄抄,为了快速实现没去读源码,总之没找到相关的设置。
    思路2:既然self.view有变化,就监听self.view的frame变化去修改遮罩层的位置,试了一下没问题,那们就上代码。

    override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view.
            view.addObserver(self, forKeyPath: "frame", options: [.new,.old], context: nil)
    }
    
    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
        if let old = change?[.oldKey] as? CGRect, let new = change?[.newKey] as? CGRect {
            let modify = new.origin.y - old.origin.y;
            if let bracket = alert {
                var rect = bracket.frame;
                rect.origin.y += modify
                bracket.frame = rect
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:iOS IQKeyboardManager 管理非ViewCon

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