Iphone开发(十四)深入理解scrollView的contentOffset等属性,实现下拉刷新功能
2013-07-19 12:18
686 查看
scrollView的属性有很多,我当初在研究scrollView的时候被它的contentOffset,contentInset等属性弄得纠结万分,昨天要写一个下拉刷新的demo,contentOffset等阴暗的嘴脸又浮现在我的眼前,加上前一阵子项目紧,好久没写博客了,今天就挑个时间把这几个东东给扒一扒,加深下印象的同时给广大同胞一些别的思路,便于深入理解;
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,四个值分别是上下左右,就像上面那个例子,屏幕状的洞和下面的纸的边缘之间是有距离的;默认值是
scrollView中还有好多别的属性,比如tracking,zooming,decelerating等,什么 touch 后还没拖动的时候,滚动后手放开的时候,是否要自动滚到subView的边界处等等,网上有很好的总结说明,官方library里也介绍得很详细很形象,这里就不多说了,上面介绍的这三个属性很基本很重要,如果要加深理解,可以看我附件中的代码,下拉刷新的,参照网上一个朋友的源码自己实现了一下,果然很好用;另外,scrollView也经常用在登陆界面中,一般是弹出键盘时候,输入框的向上平移,所以,反正很重要;对了,下拉刷新一般都是和tableView一块儿实现,tableView也是scrollView;
代码附件下载:点击打开链接
转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/8056305
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. |
代码附件下载:点击打开链接
转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/8056305
相关文章推荐
- Iphone开发(十四)深入理解scrollView的contentOffset等属性,实现下拉刷新功能
- Iphone开发(十四)深入理解scrollView的contentOffset等属性,实现下拉刷新功能
- 深入理解scrollView的contentOffset等属性转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/deta
- iPhone开发笔记(17)使用EGOTableViewPullRefresh实现列表的下拉刷新功能
- iPhone开发之UIScrollView滚动组件的使用(二) 拖线实现按钮控制大图移动利用contentOffset属性
- 对scrollView的属性contentSize contentOffset contentInset个人理解
- IOS开发笔记(2)EGOTableViewPullRefresh实现列表的下拉刷新功能
- Android开发技术学习之下拉刷新功能的实现
- 纯javascript实现简单下拉刷新功能
- 下拉刷新功能是怎么实现的?
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
- AndroidStaggeredGrid实现下拉刷新功能
- vue开发:vue实现百度搜索下拉提示功能
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
- 深入理解iPhone数据持久化(手把手教你iphone开发 – 基础篇)
- 深入理解iPhone委托模式兼谈iPhone生命周期(手把手教你iphone开发 - 基础篇)
- Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
- iphone开发中,contentsize和contentoffset 还有contentInset的区别
- 使用v4包中的SwipeRefreshLayout为ListView和ScrollView添加下拉刷新功能
- Iphone开发(九)理解subView,手动实现多个视图切换