contentSize, contentInset 和 contentOffset的含義

3個都是UIScrollView的屬性,可是類型並不同:

ObjectivC@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爲負數時,在滾動視圖中是看不到的。atom

3個屬性一塊兒使用能夠肯定contentView在scrollView中的位置:

  • contentView沒有滾動時,經過contentInset.top/.left 2個相對與scrollView的距離知道contentView的位置;
  • contentView滾動時,經過contentOffset的座標知道contentView左上角相對與scrollView左上角的距離,再經過contentSize便可知道contentView的具體位置;
  • contentView滾動到最終位置時, 固定在contentInset.right/bottom 2個位置;

文字描述太枯燥, 具體看我畫的圖:

圖片描述

相關文章
相關標籤/搜索