scrollView的属性有很多我当初在研究scrollView的时候被它的contentOffsetcontentInset等属性弄得纠结万分昨天要写一个下拉刷新的democontentOffset等阴暗的嘴脸又浮现在我的眼前加上前一阵子项目紧好久没写博客了今天就挑个时间把这几个东东给扒一扒加深下印象的同时给广大同胞一些别的思路便于深入理解 scrollView不用多说了可滚动视图可以在有限的屏幕空间上显示大于屏幕尺寸的内容端得是方便无比举个我个人觉得比较恰当的例子就像两张重叠在一起的纸上面的纸中间有个320*480的屏幕状的洞然后下面的纸可以无限大显示是内容你可以将手指通过这张洞来移动下面的纸来阅读上面的信息所以懂了吧。。
现在来介绍一下scrollView三个基本的要理解的属性
contentSize 苹果官方文档的解释是The size of the content view.所以很好理解contentSize也就是scrollView可滚动的区域 contentOffset 苹果官方文档的解释是The point at which the origin of the content view is offset from the origin of the scroll view.注意这里标注的是point是当前显示的区域的origin相对于整个scrollView的origin的位置 contentInset 苹果官方文档的解释是The distance that the content view is inset from the enclosing scroll view.注意这里说得是distance四个值分别是上下左右就像上面那个例子屏幕状的洞和下面的纸的边缘之间是有距离的默认值是 UIEdgeInsetsZero也就是四个值都为0我在stackOverFlow上发现了一个很形象的最佳答案粘贴如下
It sets the distance of the inset
between the content view and
the enclosing scroll
view.aScrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 7.0); Here's a good iOS Reference Library article on scroll views that has an informative screenshot (fig 1-3) - I'll replicate it via text
here: _|←_cW_→_|_↓_
| |
---------------
|content | ↑
↑ |content |
contentInset.top
cH |content |
↓ |content |
contentInset.bottom
|content | ↓
---------------
_|_______ |___
↑
(cH = contentSize.height; cW = contentSize.width)
The scroll view encloses the
content view plus whatever padding
is provided by the specified content insets.
scrollView中还有好多别的属性比如tracking,zooming,decelerating等什么 touch 后还没拖动的时候滚动后手放开的时候是否要自动滚到subView的边界处等等网上有很好的总结说明官方library里也介绍得很详细很形象这里就不多说了上面介绍的这三个属性很基本很重要如果要加深理解可以看我附件中的代码下拉刷新的参照网上一个朋友的源码自己实现了一下果然很好用另外scrollView也经常用在登陆界面中一般是弹出键盘时候输入框的向上平移所以反正很重要对了下拉刷新一般都是和tableView一块儿实现tableView也是scrollView;