美文网首页iOS知识收录
contentSize, contentInset 和 cont

contentSize, contentInset 和 cont

作者: iChanne | 来源:发表于2015-08-22 09:30 被阅读440次

    3个都是UIScrollView的属性,但是类型并不一样:

    @property(nonatomic) CGSize contentSize
    struct CGSize { CGFloat width; CGFloat height; };
    @property(nonatomic) CGPoint contentOffset
    struct CGPoint { CGFloat x; CGFloat y; };
    @property(nonatomic) UIEdgeInsets contentInset
    typedef struct { CGFloat top, left , bottom, right ; } UIEdgeInsets;
    
    • contentSize 是scrollview中的一个属性,它代表scrollview中的可显示区域,假如有一个scrollview,它的frame为(0,0,320,480),而它的contentSize为(320,960).也就是说,这个scrollview整个内容的大小为(320,960),要通过上下滑动scrollview来查看(320,480)后的内容。
    • contentOffset 是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentOffset就是(0 ,-480),也就是y偏移了480。contentOffset 的默认点为 CGPointZero
    • contentInset 理解起来比较困难, 它用4个数值表示contentView与scrollView的相对位置.具体看图吧.

    值得注意的是:

    1.contentOffset 坐标值,会随着用户滑动内容视图,而改变。
    2.内容视图的contentOffset为负数时,在滚动视图中是看不到的。

    3个属性一起使用可以确定contentView在scrollView中的位置:

    • contentView没有滚动时,通过contentInset.top/.left 2个相对与scrollView的距离知道contentView的位置;
    • contentView滚动时,通过contentOffset的坐标知道contentView左上角相对与scrollView左上角的距离,再通过contentSize即可知道contentView的具体位置;
    • contentView滚动到最终位置时, 固定在contentInset.right/bottom 2个位置;

    文字描述太枯燥, 具体看我画的图:

    图片描述图片描述

    相关文章

      网友评论

        本文标题:contentSize, contentInset 和 cont

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