本人有若干成套学习视频, 可试看! 可试看! 可试看, 重要的事情说三遍 包含Java
, 数据结构与算法
, iOS
, 安卓
, python
, flutter
等等, 如有需要, 联系微信tsaievan
.
最近在看这本书:
里面有句话说的很好:
无论按什么思路设置
scrollView
的约束,一定要让设置的约束能够确定scrollView
的contentSize
, 这是重点, 也是核心思想.
于是, 不管是"拖线"布局, 还是Masonry
布局, 都可以遵循这么个思想来进行.
先说"拖线"布局
讲道理来说, 我这里设置了x
, y
, width
,height
之后, scrollView
就应该固定住了, 布局是完美的. 但是不是, 布局的线还是报红的.
这就是scrollView
的特殊之处, 必须确定了contentSize之后才可以完美布局.
我们怎么给contentSize
呢?
- 首先, 给
scrollView
添加一个contentView
这个contentView
的上下左右边距都跟scrollView
是对齐的. 这时候, 约束还是没有任何变化, 还是报红
- 然后, 假设我是要上下滚动, 我就将
contentView
的水平方向跟scrollView
居中对齐, 这时候就确定了scrollView
的contentSize
的宽
- 最后给
contentView
设定一个高度, 这个高度实际上就是contentSize
的高
contentSize
的宽和高都确定了, 那么布局就完美了. 布局的线也变成了蓝色
再说Masonry
布局
思路都一样, 也就是那么几步
例子中写得比较简单, 高度写死了, 实际布局中, 高度是根据子view
的高度不断变化的, 这个就要举一反三了, 总之记住: