我使用純代碼(不是故事板或xib)來設置所有視圖的大小,並且我不想使用硬代碼來設置框架,所以我使用砌體。ios在砌體中設置uiscrollview的內容
現在我有一個滾動視圖和一組的意見,滾動視圖的子視圖,代碼是這樣的:
[self.scrollview addSubview:[self.imageviews objectAtIndex:0]];
[[self.imageviews objectAtIndex:0] mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.equalTo(self.scrollview);
make.top.equalTo(@0);
make.left.equalTo(@0);
}];
for (NSInteger i = 1; i < maxcnt ; i++) {
[self.scrollview addSubview:[self.imageviews objectAtIndex:i]];
UIImageView *previous = [self.imageviews objectAtIndex:i-1];
[[self.imageviews objectAtIndex:i] mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.equalTo(self.scrollview);
make.top.equalTo(@0);
make.left.equalTo(previous.mas_right);
}];
}
但這裏談到的問題:
1)如何使用砌體設置滾動視圖的contentsize
?以下代碼不適用,因爲在循環事件中,self.view.frame.size.width
發生更改。
self.scrollview.contentSize = CGSizeMake(self.imageviews.count * self.view.frame.size.width, self.view.frame.size.height);
2)如果我有使用上的代碼來設置,如何應對旋轉事件使contentsize
是更新好。
你確定這一點,夥計?如果我不明確設置「contentsize」,那麼scrollview根本不會滾動。 – FisherMartyn
100%確定。如果在最後一個子視圖上設置了正確的約束,它將開始滾動。 scrollview不滾動,因爲沒有缺少'right'約束,它無法知道contentView必須是多大。 – joern
非常感謝!這樣可行。而且你的博客也很棒。 – FisherMartyn