我想添加一個視圖到集合視圖和表視圖(因此適用於任何類型的滾動視圖)的內容視圖的底部,我也希望能夠向下滾動以查看此視圖,例如:UICollectionView等計算內容大小,以便我可以永久增加它?
- (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);
}
然而這會導致各種各樣的顯示問題。
你可能想在layoutSubviews做這些計算。 – atreat 2013-04-29 18:59:25
這是UICollectionView等通常計算contentSize的地方嗎? – Michael 2013-04-29 19:00:23
我沒有看到代碼中的任何內容會改變您正確的「contentSize' – matt 2013-04-29 19:05:28