iOS VFL为scrollview添加约束

- (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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值