以往我们使用UIScrollView的时候需要设置它的frame和contentSize.其中frame是UIScrollView的窗口大小,contentSize是内容大小,也就是滚动的范围,当然contentSize小于frame.size的话是没法滚动的。
今天带给大家分享一个使用masonry来使contentSize自适应的小技巧
一、宽高都适应
- (void)viewDidLoad {
[super viewDidLoad];
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.backgroundColor = [UIColor greenColor];
[self.view addSubview:scrollView];
[scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(0);
make.bottom.mas_equalTo(-200);
make.top.mas_equalTo(200);
}];
UIView *containerView = [[UIView alloc] init];
containerView.backgroundColor = [UIColor yellowColor];
[scrollView addSubview:containerView];
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(scrollView);
}];
UIView *view0 = [[UIView alloc] init];
view0.backgroundColor = [UIColor purpleColor];
[containerView addSubview:view0];
[view0 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.mas_equalTo(0);
make.width.mas_equalTo(600);
make.height.mas_equalTo(600);
}];
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(view0);
make.bottom.equalTo(view0);
}];
}
效果
宽高自适应二、宽适应
- (void)viewDidLoad {
[super viewDidLoad];
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.backgroundColor = [UIColor greenColor];
[self.view addSubview:scrollView];
[scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(0);
make.bottom.mas_equalTo(-200);
make.top.mas_equalTo(200);
}];
UIView *containerView = [[UIView alloc] init];
containerView.backgroundColor = [UIColor yellowColor];
[scrollView addSubview:containerView];
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(scrollView);
make.height.equalTo(scrollView);//这个不能省略
}];
UIView *view0 = [[UIView alloc] init];
view0.backgroundColor = [UIColor purpleColor];
[containerView addSubview:view0];
[view0 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.bottom.mas_equalTo(0);
make.width.mas_equalTo(600);
}];
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(view0);
}];
}
效果
宽适应三、高适应
- (void)viewDidLoad {
[super viewDidLoad];
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.backgroundColor = [UIColor greenColor];
[self.view addSubview:scrollView];
[scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(0);
make.bottom.mas_equalTo(-200);
make.top.mas_equalTo(200);
}];
UIView *containerView = [[UIView alloc] init];
containerView.backgroundColor = [UIColor yellowColor];
[scrollView addSubview:containerView];
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(scrollView);
make.width.equalTo(scrollView);//这个不能省略
}];
UIView *view0 = [[UIView alloc] init];
view0.backgroundColor = [UIColor purpleColor];
[containerView addSubview:view0];
[view0 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.trailing.mas_equalTo(0);
make.height.mas_equalTo(600);
}];
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.bottom.equalTo(view0);
}];
}
效果
高适应四、还可以这样
- (void)viewDidLoad {
[super viewDidLoad];
UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.backgroundColor = [UIColor greenColor];
[self.view addSubview:scrollView];
[scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(0);
make.bottom.mas_equalTo(-200);
make.top.mas_equalTo(200);
}];
UIView *containerView = [[UIView alloc] init];
containerView.backgroundColor = [UIColor yellowColor];
[scrollView addSubview:containerView];
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(scrollView);
make.height.equalTo(scrollView);
}];
UIView *view0 = [[UIView alloc] init];
view0.backgroundColor = [UIColor purpleColor];
[containerView addSubview:view0];
[view0 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.bottom.mas_equalTo(0);
make.width.mas_equalTo(600);
}];
UIView *view1 = [[UIView alloc] init];
view1.backgroundColor = [UIColor orangeColor];
[containerView addSubview:view1];
[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.bottom.mas_equalTo(0);
make.left.mas_equalTo(view0.mas_right);
make.width.mas_equalTo(600);
}];
[containerView mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(view1);
}];
}
网友评论