iOS 关于AutoLayout和UIScrollView

  • UIScrollView子控件设置自动布局后不能滑动原因:

    • 一般是由于与UIScrollView的依赖关系没设置好,导致contentSize虽然有值,但就是滑动不了。
  • UIScrollView的子控件并不是宽高和上下左右都需要设置

    • 这里以往scrollView中添加两个控件的例子解析
- (void)viewWillAppear:(BOOL)animated
{
    // 设置scrollView的大小和self.view一样大
    UIScrollView *scrollView = [[UIScrollView alloc] init];
    [self.view addSubview:scrollView];
    [scrollView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.view);
        make.left.equalTo(self.view);
        make.right.equalTo(self.view);
        make.bottom.equalTo(self.view);
    }];
    UIImageView *imageView = [[UIImageView alloc] init];
    // 往scrollView上添加一个UIImageView控件
    [scrollView addSubview:imageView];
    imageView.image = [UIImage imageNamed:@"01.jpg"];
    // 设置imageView的约束
    [imageView mas_makeConstraints:^(MASConstraintMaker *make) {
        // 设置高度等于父控件scrollView的高度
        make.height.equalTo(scrollView).multipliedBy(1.5);
        // 设置宽度等于父控件scrollView的宽度
        make.width.equalTo(scrollView);
        // 设置top约束,由于top和外部控件关联,所以scrollView无法上下滑动(如果把scrollView的
        // contentSize看作是一个控件的话,则contentSize的y值已经固定,无法更改)
        make.top.equalTo(self.view);
        make.bottom.equalTo(scrollView);
        make.left.equalTo(scrollView);
        make.right.equalTo(scrollView);
    }];

    [scrollView layoutIfNeeded];
    NSLog(@"%@", NSStringFromCGSize(scrollView.contentSize));

}

打印结果:

{621, 1104}

只能左右滑动,不能上下滑动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值