kvo实现导航栏透明

来源:互联网 发布:dao类中sql语句怎么写 编辑:程序博客网 时间:2024/06/14 17:59

在viewdidload当中添加监听者

[self.tableviewaddObserver:selfforKeyPath:@"contentOffset"options:NSKeyValueObservingOptionNewcontext: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;

    }

}


原创粉丝点击