我想在集合视图和表格视图的内容视图底部添加一个视图(因此适用于任何类型的滚动视图),我还希望能够向下滚动以查看此视图,例如:
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
// Observe change in content size so can move my view when
// content size changes (keep it at the bottom)
[self addObserver:self forKeyPath:@"contentSize"
options:(NSKeyValueObservingOptionPrior)
context:nil];
CGRect frame = CGRectMake(0, 0, 200, 30);
self.loadingView = [[UIView alloc] initWithFrame:frame];
[self.loadingView setBackgroundColor:[UIColor blackColor]];
[self addSubview:self.loadingView];
// Increase height of content view so that can scroll to my view.
self.contentSize = CGSizeMake(self.contentSize.width, self.contentSize.height+30);
}
return self;
}
但是,例如,当插入一个单元格时,会重新计算 contentSize 并且虽然我的视图在内容大小的底部仍然可见(由于能够反弹滚动视图),但我无法再滚动到它。
如何确保内容大小保持在我的代码中高 30 点?
另一个问题是:
- 除了观察之外,还有其他方法可以跟踪内容大小吗?
提前致谢。
我努力了:
- (void)layoutSubviews
{
[super layoutSubviews];
self.contentSize = CGSizeMake(self.contentSize.width, self.contentSize.height+30);
}
但是,这会导致各种显示问题。