關於ScrollView的一些屬性設置

轉自holydancer的CSDN專欄,原文地址:http://blog.csdn.net/holydancer/article/details/8056305

?

scrollView的屬性有很多,我當初在研究scrollView的時候被它的contentOffset,contentInset等屬性弄得糾結萬分,昨天要寫一個下拉刷新的demo,contentOffset等陰暗的嘴臉又浮現在我的眼前,加上前一陣子項目緊,好久沒寫博客了,今天就挑個時間把這幾個東東給扒一扒,加深下印象的同時給廣大同胞一些別的思路,便於深入理解;

scrollView不用多說了,可滾動視圖,可以在有限的屏幕空間上顯示大於屏幕尺寸的內容,端得是方便無比;舉個我個人覺得比較恰當的例子,就像兩張重疊在一起的紙,上面的紙中間有個320*480的屏幕狀的洞,然後下面的紙可以無限大,顯示是內容,你可以將手指通過這張洞來移動下面的紙,來閱讀上面的信息,所以,懂了吧。。現在來介紹一下scrollView三個基本的要理解的屬性;

contentSize

蘋果官方文檔的解釋是:The size of the content view.所以很好理解,contentSize也就是scrollView可滾動的區域;

contentOffset

蘋果官方文檔的解釋是:The point at which the origin of the content view is offset from the origin of the scroll view.注意,這裏標註的是point,是當前顯示的區域的origin相對於整個scrollView的origin的位置;

contentInset

蘋果官方文檔的解釋是:The distance that the content view is inset from the enclosing scroll view.注意,這裏說得是distance,四個值分別是上下左右,就像上面那個例子,屏幕狀的洞和下面的紙的邊緣之間是有距離的;默認值是?UIEdgeInsetsZero,也就是四個值都爲0,我在stackOverFlow上發現了一個很形象的最佳答案,粘貼如下:

?

It sets the distance of the inset between the content view and the enclosing scroll view.aScrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 7.0);

Here's a good?iOS Reference Library article on scroll views?that has an informative screenshot (fig 1-3) - I'll replicate it via text here:

  _|←_cW_→_|_↓_
   |       | 
---------------
   |content| ↑
 ↑ |content| contentInset.top
cH |content|
 ↓ |content| contentInset.bottom
   |content| ↓
---------------
  _|_______|___ 
             ↑


   (cH = contentSize.height; cW = contentSize.width)

The scroll view encloses the content view plus whatever padding is provided by the specified content insets.

?

scrollView中還有好多別的屬性,比如tracking,zooming,decelerating等,什麼 touch 後還沒拖動的時候,滾動後手放開的時候,是否要自動滾到subView的邊界處等等,網上有很好的總結說明,官方library裏也介紹得很詳細很形象,這裏就不多說了,上面介紹的這三個屬性很基本很重要,如果要加深理解,可以看我附件中的代碼,下拉刷新的,參照網上一個朋友的源碼自己實現了一下,果然很好用;另外,scrollView也經常用在登陸界面中,一般是彈出鍵盤時候,輸入框的向上平移,所以,反正很重要;對了,下拉刷新一般都是和tableView一塊兒實現,tableView也是scrollView;

?


發佈了29 篇原創文章 · 獲贊 4 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章