contentSize、contentInset和content

2016-09-02  本文已影响23人  一个城市猎人

contentSize、contentInset和contentOffset区别

contentSize是UIScrollView可以滚动的区域。在我的理解中,我把UIScrollView看成是具有上下两层的一个复合视图,frame控制着上层的大小,我们看到的UIScrollView的大小实际就是frame的大小,上层固定不动,显示的变化,由下层的滚动来控制。而下层滚动的区域的大小,就是由contentSize来控制的了。例如:若frame = (0, 0, 320, 480) contentSize = (320, 960),代表本UIScrollView可以上下滚动,滚动区域为frame大小的两倍。

contentSize、contentInset和contentOffset 是 scrollView三个基本的属性。
**contentSize: *The size of the content view. 其实就是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。
contentOffset:The point at which the origin of the content view is offset from the origin of the scroll view. 是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0 ,480),也就是y偏移了480
contentInset:The distance that the content view is inset from the enclosing scroll view.是scrollview的contentview的顶点相对于scrollview的位置,例如你的contentInset = (0 ,100),那么你的contentview就是从scrollview的(0 ,100)开始显示
/
上拉刷新一般实现代码如下 */

//上拉加载更多  
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{  
      
    [_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];  
    float offset=scrollView.contentOffset.y;  
    float contentHeight=scrollView.contentSize.height;  
    float sub=contentHeight-offset;  
    if ((scrollView.height-sub)>20) {
//如果上拉距离超过20p,则加载更多数据  
        //[self loadMoreData];//此处在view底部加载更多数据  
    }  
}
上一篇 下一篇

猜你喜欢

热点阅读