在处理UIScrollView的子类UITableView等的下拉刷新功能时,学习了contentOffset等属性的变化情况,在此记录总结一下。

首先如果存在statusbar和navbar则在初始状态下UIScrollView的contentInset.top就是64,contentOffset.y是0,因为statusbar高度20,navbar高度44.

此时在UIScrollView中加一个view,frame是(0,-50,30,50),则UIScrollView的contentInset.top就是64,contentOffset.y是-64;至于此处contentInset.top是64,而不是14,我认为只能理解为新加的view把statusbar和navbar原来占的空间上去了,而不是覆盖了;至于contentOffset.y是-64而不是正64,也不是-50,要看怎么理解此时UIScrollView的可视窗口范围了,此时的视窗口范围应该是statusbar顶部到最底部。contentOffset是可视范围的原始顶点(此时为statusbar顶部)到UIScrollView内容的原始顶点(此时为navbar下面紧挨着,注意不是新加的view顶点)。

现在我们开始下拉,如果下拉10个单位,则UIScrollView内容的原始顶点下移动10个单位,因此contentOffset.y为-64-10=-74,contentInset.top的原始空间不能被覆盖一直是64,这个值的意义就是知道原始布局中内容到顶点的距离。

参考信息:

http://blog.csdn.net/ch_soft/article/details/6947695

http://blog.sina.com.cn/s/blog_489ab04e01010tup.html