一、下載FBKVOController第三方庫矩欠;
pod 'KVOController'
二、導(dǎo)入頭文件
#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賦值癌淮,否則會(huì)陷入死循環(huán);
//tableView.contentOffset = CGPointMake(0, 20);
NSLog(@"===%@", change[NSKeyValueChangeNewKey]);
}];
tableView.contentOffset = CGPointMake(0, 20);
在需要的地方移除監(jiān)聽
-(void)dealloc {
//方式一
[KVOController unobserve:tableView];
//方式二
[KVOController unobserveAll];
//方式三
[KVOController unobserve:tableView keyPath:@"contentOffset"];
}
//注: 以上三種方式按照需求任選其一即可沦补。