contentSize:内容(content)的尺寸
contentInset:内容的padding,给内容四周加边距
contentOffset:当前scrollView的左上角相对于内容左上角的偏移offset
image.png
对于ScrollView而言,可以滑动的范围 = contentSize + contentInset。如果没有设置contentSize,则scrollView默认为它子view的大小,即可以正常显示它子view的全部内容。
如果设置了contentSize但是小于scrollView的子view大小,那么你在滑动过程中就会有一部分的子view是怎么也滑不到的(如果没有bounce,即使有bounce也只是在bounce的时候可以短暂的看到);如果设置contentSize大于scrollView的子view大小,那么你可以滑动的范围会比子view还多只是多余部分都是留白。
那么设置contentSize大于子view和设置contentInset有啥区别呢?
个人意见哈,如果设置contentSize大于子view,子view内容还是会放在界面的左上方,留白只能在右下方,如果想在顶部或者左边设置留白,需要设置inset。
另外,这两种方式在scrollview展现部分一样的时候(也就是我们看到的东西是一样的),contentOffset实际是不一样的哦。
先来看下contentOffset吧~
ScrollView滑动的实现其实就是不断的更改contentOffset。contentOffset就是scrollView左上角相对于内容坐标系的坐标,如下图所示。
image.png