我们都知道mj_refresh是一个非常好用的第三方库,但是有时候也有与你自己想要实现功能相互影响的时候;比如笔者想要在刷新状态时隐藏视图,刷新完成以后显示视图(主要是导航栏),但是实现的时候却是各种方案不对,无法实现,最终在经过不断试验后,以如下方案实现:1.隐藏导航栏,2.自定义视图代替导航栏,用kvo实现视图的隐藏已显现的时机;
代码如下:
[myTableiView.mj_header addObserver:self forKeyPath:@"state" options:NSKeyValueObservingOptionNew context:nil];
回调方法实现
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
// NSLog(@"%ld",myTableiView.mj_header.state);
if (myTableiView.mj_header.state==2) {
}
if (myTableiView.mj_header.state==1) {
}
这样就实现了刷新同时隐藏和显示视图的需求。