-
按照正常步骤拖一个scrollview到界面上并设置约束
添加scrollview
设置完成,一切都正常. -
添加子视图并设置约束
添加子视图
问题来了, 发现设置完成后, 约束有报红,那么水命存在错误!
看看错误提示是什么-->
原因是xcode只知道你的scrollview的frame是多少, 但是却不知道contentsize是多少, 原理是xib中xcode是通过scrollview的子视图来确定contentsize的, 接下来,设置子视图的宽高, 在绿色的子视图上右键拖到父视图上, 设置宽高和父视图一致, 当然你也可以自己设置数值, 这就是scrollview的contentsize
设置完成后, 错误消失
同时在scrollview上添加2个子视图的情况:
Snip20180630_7.png蓝色view 是先添加的, 宽度设置和屏幕一致, 绿色view是后添加的, 宽高都超出看屏幕范围,为了测试contentsize, 绿色view的宽高都超出了屏幕, 运行结果scroll是不可滑动的, 所以猜测:
scrollview在xib中是根据第一个子视图的宽高来确定contentsize的大小的
删除绿色view,为了进一步测试, 将蓝色view设置宽高都超出屏幕,
运行结果是可以滑动的, 并且滑动范围和设置蓝色view的宽高一致, 所以证明scrollview在xib中是根据第一个子视图的宽高来确定contentsize的大小的
网友评论