KVO也称作观察者模式,就是说你想观察某个对象的属性变化情况,为他增加一个observer观察者
[object addObserver:observer forKeyPath:@"frame" options:0 context:nil];
说一下这几个参数的意思吧
object:被观察对象
observer:观察对象
forkeypath:就是你要观察的对象的某个属性,比如property的name,UIView的frame,center等等
options有四个值,分别是;
NSKeyValueObservingOptionNew ->把更改之前的值提供给处理方法
NSKeyValueObservingOptionOld ->把更改之后的值提供给处理方法
NSKeyValueObservingInitial ->把初始化的值提供给处理方法,一旦注册,立马就会调用一次,通常它会带有新值,而不会带有旧值
NSKeyValueObservingPrior ->分两次调用,在值改变之前和改变之后
*0表示不带任何参数进去*
context:可以带入一些参数,任何类型都可以,加入强转就OK
接下来,观察到值的变化之后,调用相关的方法来处理,这个方法是:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context;
相关代码:http://www.androiddev.net/kvo/