在viewdidload当中添加监听者
[self.tableview addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];
当监听的属性发生改变时就会去通知该对象,该对象必须实现- observeValueForKeyPath:ofObject:change:context:方法,要不然当监听的属性的改变通知发出来,却发现没有相应的接收方法时,程序会抛出异常。
#pragma mark - 监听的属性发生变化时的回调
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
CGFloat offsetY = [change[@"new"] CGPointValue].y;
if (offsetY > 0) {
self.navigationController.navigationBar.alpha = 1-offsetY/100.0;
}
}