是否有自动方式来了解UITableView / UIScrollView中的ContentSize更改?
答案 0 :(得分:27)
答案实际上很简单,使用KVO(Key Value Observing);
- (id)initWithFrame:(CGRect)frame tableView:(UITableView *)tableView
{
// ....
[self.tableView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld | NSKeyValueObservingOptionPrior context:NULL];
// ....
}
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"contentSize"])
{
// Do something
}
}
虽然我不确定这些旗帜。
答案 1 :(得分:2)
对于那些不喜欢KVO的人:
- (void)setContentSize:(CGSize)contentSize {
[super setContentSize:contentSize];
// Do something.
}
是的,只需使用super
访问父方法即可。假设您将UIScrollview / TableView / CollectionView