• UIScrollView的contentSize、contentOffset和contentInset属性


    IOS中,UIScrollView是可以滚动的视图,其中最常用的UITableView就是继承了UIScrollView。

    跟所有的view一样,UIScrollView有一个frame属性,同时,UIScrollView还具有contentSize、contentOffset和contentInset属性。我在学习中,就觉得其中contentSize和contentOffset相对比较好理解,对contentInset就有点不太好理解。下面具体解释一下。

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

    contentOffset是UIScrollView当前显示区域的顶点相对于frame顶点的偏移量,例如上面的例子如果拉到最下面,则contentOffset就是(0, 480),也就是y偏移了480.

    contentInset的API文档的解释是"内容视图嵌入到封闭的滚动视图的距离"(哈,英文不是很好,翻译的不好)。可以理解为内容视图的上下左右四个边扩展出去的大小。contentInset的单位是UIEdgeInsets,默认值为UIEdgeInsetsZero,也就是没有扩展的边。下面解释一下UIEdgeInsets,它是一个结构体,定义如下:

    typedef struct {
        CGFloat top, left, bottom, right;
    }


    分别代表着上边界,左边界,底边界,右边界,扩展出去的值。

    结合这图片,就比较好理解这几个值的意义了。下面贴一下stanford大学iphone公开课的关于UIScrollView的图片展示,能帮助理解。

    链接地址:http://www.docin.com/p-120039524.html

  • 相关阅读:
    AWVS——windows下扫描(上)
    中介者模式
    设计模式-类型2
    设计模式=类型
    C++ 1
    字符占字节
    编程规范
    位运算相关规律
    十进制转二进制
    递归理解
  • 原文地址:https://www.cnblogs.com/yulang314/p/3723405.html
Copyright © 2020-2023  润新知