前言:
平时习惯了用xib搭建页面,看到内容比较多需要滑动的页面又不想用代码写,那就拖一个ScrollView就好,可是ScrollView确有他的特殊性,下面我们来看看具体怎么做。
第一步:
拖一个ScrollView(我先随便给个棕色颜色),先不用添加约束,下一步
第二步:
需要放一个 View(我这里取名叫ContentView,便于理解) 到这个 ScrollView 上面,这个view的size其实就相当于ScrollView的ContentSize,上下左右添加约束,水平居中,这里我高度暂时给了1000(注意这里是垂直滑动,如果水平滑动那就是垂直居中,设置宽度)


这个时候有报错先不用管,上下滑动一个这个view是不是就可以滑动了(如果不行那就是你手法问题)
第三步:
给ScrollView添加上下左右约束,这个时候就没有报错了,
第四步:
最后就可以愉快的在这个ContentView上添加子视图了

后续:
以上用了一个 View 来充当 ContentView. 这算是大家使用最多的做法. 但是这样有个问题, 就是高度被我们固定成了1000. 有些时候, ContentSize 是需要变化的,那么你也可以不设置ContentView一个准确的高度,比如:
- 将ContentView高度约束作为属性拖出来,用代码来修改约束高度。
- 使用子view来撑开ContentView来确定它的高度。
- 甚至这个 ContentView 是可以给去掉的,也可以在ScrollView 里面摆放任意多个控件, 它们在相互参照完成约束布局到最后。
其实根本原因是因为 ScrollView 需要知道自己的ContentSize,只有要让 ScrollView 能找到 ContentSize 就可以了
有兴趣到可以自己试试,如果内容有错误欢迎指正,如果对你有帮助也欢迎点赞🙏
补充:
有些朋友反应最后还是无法滑动,那应该就是ScrollView Top和Bottom两个约束的问题了,补充两张截图,注意勾选是否正确


网友评论