美文网首页
初学swift之KVO

初学swift之KVO

作者: MrLSX | 来源:发表于2018-08-15 18:08 被阅读0次

    初学swift之KVO

    KVO相当于给一个已有对象的属性添加一个属性观察器

    KVO三步

    1.注册

    2.监听

    3.移除

    //通过xib创建一个slider默认值为0.5

        @IBOutlet weak var slider: UISlider!

    //注册(被监听的是slider的value属性)

            /*NSKeyValueObservingOptions的属性

             New:提供更改前的值

             Old:提供更改后的值

             Initial:观察最初的值(在注册观察服务时会调用一次触发方法)

             Prior:分别在值修改前后触发方法(即一次修改有两次触发)*/

            slider.addObserver(self, forKeyPath:"value", options:NSKeyValueObservingOptions.new, context:nil)

    //监听slider的value属性

        /*

         keyPath与注册里的forKeyPath相同

         */

        overridefuncobserveValue(forKeyPath keyPath:String?, of object:Any?, change: [NSKeyValueChangeKey:Any]?, context:UnsafeMutableRawPointer?) {

            ifletkey = keyPath{

                ifkey =="value"{

                    ifletvalues =slider.value(forKey:"value")as?Double{

                        //移除

                        slider.removeObserver(self, forKeyPath:"value")

                        print(values)

                    }

                }

            }

        }

    最后效果:当移动slider的时候,slider的value发生改变,打印“0.5”调

    因为只调用了一次监听事件之后就移除的监听事件,所以只答应了一次

    /*写文章的目的只因学习还有记录笔记,如果大佬看见了有什么不对的地方,可以评论,共同学习,但是由于是新手的原因,请非礼勿骂,共同创建文明社会*/

    相关文章

      网友评论

          本文标题:初学swift之KVO

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