Iphone开发(十四)深入理解scrollView的contentOffset等属性,实现下拉刷新功能
来源:互联网 发布:ubuntu 查看时区 编辑:程序博客网 时间:2024/05/20 11:26
holydancer原创,如需转载,请在显要位置注明:
转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/8056305
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,四个值分别是上下左右,就像上面那个例子,屏幕状的洞和下面的纸的边缘之间是有距离的;默认值是 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.topcH |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;
代码附件下载:点击打开链接
- Iphone开发(十四)深入理解scrollView的contentOffset等属性,实现下拉刷新功能
- 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
- scrollView的几个属性contentSize contentOffset contentInset
- scrollView的几个属性contentSize contentOffset contentInset
- 有关ScrollView的contentOffset的理解
- Android实战简易教程-第五十四枪(通过实现OnScrollListener接口实现下拉刷新功能)
- 下拉刷新功能的实现。
- 使用ScrollView实现下拉刷新(一)
- ScrollView 实现下拉刷新(二)
- 使用ScrollView实现下拉刷新(一)
- iPhone开发笔记(19)实现类似网易新闻当应用状态变为active时手动调用下拉刷新的功能
- iPhone开发笔记(19)实现类似网易新闻当应用状态变为active时手动调用下拉刷新的功能
- Android实现listview、expandablelistview、scrollview等组件的下拉或上拉刷新
- 初学PHP时的知识积累
- ReadCode-001: memcpy memset bzero
- mysql url较长情况下的索引优化
- 随写
- XML简介之XML的DTD约束
- Iphone开发(十四)深入理解scrollView的contentOffset等属性,实现下拉刷新功能
- 与文字相拥 舞尽人间芳华
- 机选彩票代码
- java-String 类别
- 如何在oracle中生成这样的编码0001,0002
- XML简介之DTD约束的相关实例
- hibernate StatelessSession 说明
- 一个人上台阶,一次可上一个阶梯或两个,问这个人上十个阶梯有多少种走法?
- C++——CString用法大全