【发布时间】:2015-12-07 10:06:01
【问题描述】:
我使用纯代码(不是 storyboard 或 xib)来设置所有视图的大小,我不想使用硬代码来设置 frame,所以我使用 Masonry。
现在我有一个滚动视图和一组视图作为滚动视图的子视图,代码是这样的:
[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) 如何使用 Masonry 设置滚动视图的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更新好。
【问题讨论】:
标签: ios objective-c uiscrollview masonry