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个位置;