关于ScrollView的一些属性设置
2014-05-02 17:02
405 查看
转自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,四个值分别是上下左右,就像上面那个例子,屏幕状的洞和下面的纸的边缘之间是有距离的;默认值是?
?
?
scrollView中还有好多别的属性,比如tracking,zooming,decelerating等,什么 touch 后还没拖动的时候,滚动后手放开的时候,是否要自动滚到subView的边界处等等,网上有很好的总结说明,官方library里也介绍得很详细很形象,这里就不多说了,上面介绍的这三个属性很基本很重要,如果要加深理解,可以看我附件中的代码,下拉刷新的,参照网上一个朋友的源码自己实现了一下,果然很好用;另外,scrollView也经常用在登陆界面中,一般是弹出键盘时候,输入框的向上平移,所以,反正很重要;对了,下拉刷新一般都是和tableView一块儿实现,tableView也是scrollView;
?
?
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.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;
?
相关文章推荐
- 关于navigation的一些属性设置
- iOS开发设置关于tabBar和navigationBar以及item中的一些全局属性
- cocos2dx中关于粒子系统(particleSystem)的一些属性的设置
- 关于button的一些属性设置
- 关于tableview 的一些属性设置
- 如何设置dialog下面的activity不变灰色。关于dialog的一些属性设置。
- 关于一些iOS开发中容易忽略的一些属性设置
- DevExpress中关于GridControl控件的一些常用属性设置方法
- C# 关于Form的一些属性设置
- 关于ScrollView里面包裹LinearLayout 设置权重 填充满屏幕无效问题解决方法
- 关于MTU的一些概念与设置技巧
- 关于ellipsize属性使用的一些细节
- delphi teechrt中TChart 一些属性设置
- 关于iOS系统里录音的一些设置的心得
- 关于window.status属性的设置
- 关于一些有意思的控件属性记录
- iOS 【UIKit-关于 UIImageView contentMode 属性设置无效】
- 关于SecureCRT的一些设置
- 关于Xcode中plist文件一些常用设置的使用
- CSS中的textarea的一些设置之resize属性(个人笔记)