美文网首页
contentSize、contentInset和content

contentSize、contentInset和content

作者: 一个城市猎人 | 来源:发表于2016-09-02 16:34 被阅读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底部加载更多数据  
        }  
    }
    

    相关文章

      网友评论

          本文标题:contentSize、contentInset和content

          本文链接:https://www.haomeiwen.com/subject/dexkettx.html