- (void)createScrollView {
self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero];
self.scrollView.backgroundColor = [UIColor clearColor];
self.scrollView.bounces = NO;
self.scrollView.pagingEnabled = NO;
[self.view addSubview:self.scrollView];
UIView * contentView = [[UIView alloc] initWithFrame:CGRectZero];
contentView.backgroundColor = [UIColor redColor];
[self.scrollView addSubview:contentView];
//为scrollView添加约束
self.scrollView.translatesAutoresizingMaskIntoConstraints = NO;
NSDictionary * views = @{@"scroll": self.scrollView};
//横向约束,距离屏幕左右各方8个像素的间距
NSArray * Hscroll = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-8-[scroll]-8-|" options:0 metrics:nil views:views];
//纵向约束,使他距离屏幕上下方都是0像素
NSArray * Vscroll = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scroll]|" options:0 metrics:nil views:views];
[self.view addConstraints:Hscroll];
[self.view addConstraints:Vscroll];
//为contentView添加约束
contentView.translatesAutoresizingMaskIntoConstraints = NO;
NSDictionary * contentviews = @{@"content": contentView};
//添加横向约束
NSArray * Hcontent = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[content]|" options:0 metrics:nil views:contentviews];
//添加纵向约束
NSArray * Vcontent = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[content]|" options:0 metrics:nil views:contentviews];
//普通的视图到此结束了,但是scrollview需要添加下面两个约束
//设置contentView的宽度
NSLayoutConstraint * widthContent = [NSLayoutConstraint constraintWithItem:contentView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.scrollView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0];//这句话的意思是:添加一个明确的约束,contentview.width(NSLayoutAttributeWidth) = scrollview.width(NSLayoutAttributeWidth) * 1.0(multiplier) + 0(constant)
//设置contentView的高度
NSLayoutConstraint * heightContent = [NSLayoutConstraint constraintWithItem:contentView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.scrollView attribute:NSLayoutAttributeHeight multiplier:1.0 constant:0];
[self.scrollView addConstraints:Hcontent];
[self.scrollView addConstraints:Vcontent];
[self.scrollView addConstraint:widthContent];
[self.scrollView addConstraint:heightContent];
//用约束 scrollview的contentsize是不需要设置的
//self.scrollView.contentSize = contentView.frame.size;
}
iOS VFL为scrollview添加约束
最新推荐文章于 2024-10-09 22:34:34 发布