如何在UIScrollView的xib上添加子控件并添加AutoLayout约束

引言

自从苹果推出了autoLayout之后,作为开发者,深深的体验到了他的便捷之处,再也不用为适配不同屏幕布局UI而烦恼,我们仅仅需要和类关联一个xib文件,想上面放置我们需要的控件xib,并打好其相对于父视图以及同级视图的约束关系,这样我们就做好了不同屏幕的适配。但是奇怪的是UIScrollView上添加子控件,和之前的一样的操作,报的错却很吓人,那是为什么呢?

原因分析

因为UIScrollView想要能滑动的前提是要知道他的ContentSize的大小,我们直接向上面添加约束,他不知道自己的ContentSize是多少,所以就报错了

解决方法

1. 拖一个UIView在UIScrollView上作为子控件的内容视图(以下统称containerView),之后所有的子控件都放在containerView上(类似于UITableviewCell的contentView)

2. 设置containerView距离UIScrollView上下左右距离约束都是0,containerView和UIScrollView的frame一样大

3. 固定containerView 的高度,这一步是虚假的操作,这样UIScrollView就以为的自己的contentSize.height =containerView.height

4. 设置containerView水平居中(表示垂直方向能滑动),这时候containerView就没有警告了

5. 向containerView上拖子控件,按正常情况设置约束(从上往下打约束)

6. 删除之前设置的高度约束,设置containerView和其子视图布局最底部的控件的 bottom space to container

至此,UIScrollView上的约束就完成了~

转载于:https://www.cnblogs.com/xuanyufeng/p/5816920.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值