一、下载FBKVOController第三方库;
pod 'KVOController'
二、导入头文件
#import <KVOController/KVOController.h>
三、接下来就是开始使用了
ViewController.m
/- (void)viewDidLoad
KVOController = [FBKVOController controllerWithObserver:self];
[KVOController observe:tableView keyPath:@"contentOffset" options:NSKeyValueObservingOptionInitial|NSKeyValueObservingOptionNew block:^(id _Nullable observer, id _Nonnull object, NSDictionary<NSString *,id> * _Nonnull change) {
//这里不可再对tableView.contentOffset赋值,否则会陷入死循环;
//tableView.contentOffset = CGPointMake(0, 20);
NSLog(@"===%@", change[NSKeyValueChangeNewKey]);
}];
tableView.contentOffset = CGPointMake(0, 20);
在需要的地方移除监听
-(void)dealloc {
//方式一
[KVOController unobserve:tableView];
//方式二
[KVOController unobserveAll];
//方式三
[KVOController unobserve:tableView keyPath:@"contentOffset"];
}
//注: 以上三种方式按照需求任选其一即可。