场景1:scrollview上有3个子视图,子视图高度确定,通过masonry设置scrollview的contentsize高度。
方法:第一个子视图的顶部设置好与scrollview的顶部的值,最后一个子视图的底部设置好距离scrollview的底部的值,其他子视图正常设置。
代码:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
UIScrollView *scrollView = [UIScrollView new];
[self.view addSubview:scrollView];
[scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.view).mas_equalTo(0);
}];
UIView *v1 = [UIView new];
[scrollView addSubview:v1];
v1.backgroundColor = [UIColor redColor];
[v1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(scrollView).mas_equalTo(0);
make.centerX.equalTo(scrollView).mas_equalTo(0);
make.width.mas_equalTo(300);
make.height.mas_equalTo(200);
}];
UIView *v2 = [UIView new];
[scrollView addSubview:v2];
v2.backgroundColor = [UIColor orangeColor];
[v2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(v1.mas_bottom).mas_equalTo(10);
make.centerX.equalTo(scrollView).mas_equalTo(0);
make.width.mas_equalTo(300);
make.height.mas_equalTo(400);
}];
UIView *v3 = [UIView new];
[scrollView addSubview:v3];
v3.backgroundColor = [UIColor redColor];
[v3 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(v2.mas_bottom).mas_equalTo(10);
make.centerX.equalTo(scrollView).mas_equalTo(0);
make.width.mas_equalTo(300);
make.height.mas_equalTo(300);
make.bottom.equalTo(scrollView).mas_equalTo(-50);
}];
}
网友评论