3個(gè)都是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中的一個(gè)屬性洼怔,它代表scrollview中的可顯示區(qū)域槽驶,假如有一個(gè)scrollview鹿蜀,它的frame為(0,0,320,480),而它的contentSize為(320,960).也就是說间护,這個(gè)scrollview整個(gè)內(nèi)容的大小為(320,960),要通過上下滑動(dòng)scrollview來查看(320,480)后的內(nèi)容是己。 -
contentOffset
是scrollview當(dāng)前顯示區(qū)域頂點(diǎn)相對(duì)于frame頂點(diǎn)的偏移量雳攘,比如上個(gè)例子你拉到最下面带兜,contentOffset就是(0 ,-480),也就是y偏移了480吨灭。contentOffset 的默認(rèn)點(diǎn)為 CGPointZero -
contentInset
理解起來比較困難, 它用4個(gè)數(shù)值表示contentView與scrollView的相對(duì)位置.具體看圖吧.
值得注意的是:
1.contentOffset 坐標(biāo)值刚照,會(huì)隨著用戶滑動(dòng)內(nèi)容視圖,而改變喧兄。
2.內(nèi)容視圖的contentOffset為負(fù)數(shù)時(shí)无畔,在滾動(dòng)視圖中是看不到的。
3個(gè)屬性一起使用可以確定contentView在scrollView中的位置:
-
contentView
沒有滾動(dòng)時(shí),通過contentInset.top/.left 2個(gè)相對(duì)與scrollView的距離知道contentView的位置; -
contentView
滾動(dòng)時(shí),通過contentOffset的坐標(biāo)知道contentView左上角相對(duì)與scrollView左上角的距離,再通過contentSize即可知道contentView的具體位置; -
contentView
滾動(dòng)到最終位置時(shí), 固定在contentInset.right/bottom 2個(gè)位置;
文字描述太枯燥, 具體看我畫的圖:
圖片描述