KVO的使用非常简单,使用KVO的要求是对象必须能支持kvc机制——所有NSObject的子类都支持这个机制。拿上面的渐变导航栏做,我们为tableView添加了一个监听者controller,在我们滑动列表的时候,会计算当前列表的滚动偏移量,然后改变导航栏的背景色透明度。
2
3
4
5
6
7
8
9
10
11
12
|
//添加监听者 [self.tableView addObserver: self forKeyPath:@"contentOffset" options: NSKeyValueObservingOptionNew context: nil]; /** * 监听属性值发生改变时回调 */ -(void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void*)context { CGFloatoffset=self.tableView.contentOffset.y; CGFloatdelta=offset/64.f+1.f; delta=MAX(0,delta); [selfalphaNavController].barAlpha=MIN(1,delta); } |