Ios deleteRowsAtIndexPaths之后contentOffset更改通知的任何委托方法

Ios deleteRowsAtIndexPaths之后contentOffset更改通知的任何委托方法,ios,uitableview,Ios,Uitableview,在使用DeleteRowsAndExpaths:withRowAnimation:删除一些底部行后,我的表格视图的长度会缩短,并且会自动向下滚动以补偿这些底部行的丢失,这意味着它的contentOffset已更改 问题是在本例中没有调用scrollViewDidScroll:。这里有没有其他委托方法可以用来获得contentOffset更改的通知?这听起来像是观察键值的用例 尝试将此添加到控制器: [tableView addObserver:self

在使用DeleteRowsAndExpaths:withRowAnimation:删除一些底部行后,我的表格视图的长度会缩短,并且会自动向下滚动以补偿这些底部行的丢失,这意味着它的contentOffset已更改


问题是在本例中没有调用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是否具有明显的延迟。