iOS开发之xib或storyboard上给UIScrollView添加子控件约束报错的问题

当我们在xib或者storyboard中添加UIScrollView并像给其他控件设置约束一样设置好约束后(例如top,leading,tralling,bottom都为0),显示一切正常,如图:

但是一旦当我们添加控件后就开始报错(即便设置好约束),如图:

此时,以前没碰见过这种问题的同学开始怀疑人生,心理不禁问道”我明明都设置好了约束呀,这些约束设置的没问题呀,我在其他的view上都是这样添加约束呀,怎么会出问题呢?”.

其实这也不怪第一次给UIScrollView设置约束的你,只能说UIScrollView确实跟其他UIView及其子类不同,在设置约束的时候除了常规的一些约束设置完后,还有最重要的一点要让你的scrollView知道自己的宽和高,也就是contentSize.

大家用代码添加scrollView的时候都知道要设置contentSize,同理在xib或者storyboard里添加scrollView时也需要设置好它的contentSize

而当我们在xib或者storyboard给scrollView添加子控件后,scrollView要根据子控件来计算它的contentSize,如果此时我们只设置了子控件的宽高和水平方向竖直方向居中(如上图),scrollView是无法根据子控件的约束来计算出自己的contentSize的,但是我们把子控件上下左右的距离约束也添加上的话,scrollView就能够根据子控件计算出自己contentSize了,此时约束就不会报错了,如下图:

知道了报错的原因,那我们也就知道怎么去解决了,在这里我建议两个思路:

  1. 思路一: 当我们添加好scrollView后,可以再添加一个clearColor的UIView,直接覆盖在scrollView上,并设置好UIView的约束,之后再往UIView上拖子控件,而这些子控件你就可以按照常规方法来添加并设置约束了.
  2. 思路二: 直接在scrollView上拖子控件,但切记一定要让scrollView能够根据子控件的约束计算出contentSize.否则还会出现约束报错的情况.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值