Ios deleteRowsAtIndexPaths之后contentOffset更改通知的任何委托方法
在使用DeleteRowsAndExpaths:withRowAnimation:删除一些底部行后,我的表格视图的长度会缩短,并且会自动向下滚动以补偿这些底部行的丢失,这意味着它的contentOffset已更改Ios deleteRowsAtIndexPaths之后contentOffset更改通知的任何委托方法,ios,uitableview,Ios,Uitableview,在使用DeleteRowsAndExpaths:withRowAnimation:删除一些底部行后,我的表格视图的长度会缩短,并且会自动向下滚动以补偿这些底部行的丢失,这意味着它的contentOffset已更改 问题是在本例中没有调用scrollViewDidScroll:。这里有没有其他委托方法可以用来获得contentOffset更改的通知?这听起来像是观察键值的用例 尝试将此添加到控制器: [tableView addObserver:self
问题是在本例中没有调用scrollViewDidScroll:。这里有没有其他委托方法可以用来获得contentOffset更改的通知?这听起来像是观察键值的用例 尝试将此添加到控制器:
[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属性,它只应在添加或删除行时触发此通知。contentOffset的KVO太过了。此外,contentOffset或contentSize的kvower是否具有明显的延迟。