使用deleteRowsAtIndexPaths:withRowAnimation:
删除一些底行后,我的表格视图缩小了长度并自动向下滚动以补偿这些底行的丢失,这意味着它的contentOffset已更改。
问题是在这种情况下不会调用scrollViewDidScroll:
。是否有任何其他委托方法可以用来获取有关contentOffset更改的通知?
答案 0 :(得分:0)
这听起来像是键值观察的一个用例。
尝试将此添加到您的控制器:
[tableView addObserver:self
forKeyPath:@"contentOffset"
options:NSKeyValueObservingOptionNew
context:nil];
然后,您可以在控制器中实现此方法。
-(void) observeValueForKeyPath: (NSString *)keyPath
ofObject: (id) object
change: (NSDictionary *) change
context: (void *) context {
if ([keyPath isEqualToString:@"contentOffset"]) {
//Do Something with content offset
}
}
但是,每次滚动时都会触发此通知,因为您正在观察contentOffset属性。我建议改为观察 contentSize 属性,该属性只应在添加或删除行时触发此通知。