ios之UIScrollView

UIScrollView 類負責全部基於 UIKit 的滾動操做。java

1、建立web

 

[java]  view plain copy
 
 
  1. CGRect bounds = [ [ UIScreen mainScreen ] applicationFrame ] ;  
  2. UIScrollView* scrollView = [ [UIScrollView alloc ] initWithFrame:bounds ];  

當你建立完滾動視圖後,你能夠將另外一個視圖的內容粘合到滾動視圖的空白頁上。這回建立一個滾動的內容窗口:app

[java]  view plain copy
 
 
  1. [ scrollView addSubview:myView];   

你必須給出內容的實際大小,這樣滾動視圖才知道滾動的範圍:ide

[java]  view plain copy
 
 
  1. scrollView.contentSize = myView.frame.size;  

要開啓縮放功能須要調整視圖的兩個屬性,分別是maxinumZoomScale 和 mininumZoomScale 。這樣就能夠容許用戶使用捏合手勢調整內容大小:oop

[java]  view plain copy
 
 
  1. scrollView.maxinumZoomScale = 2.0;//容許放大2倍  
  2. scrollView.mininumZoomScale = 0.5;//容許放大到0.5倍  

要打開縮放功能,你還須要增長一個UIScrollViewDelegate 代理,經過一個名爲 viewForZoomingScrollViewurl

 

的方法作出響應。這個方法會返回進行縮放時所使用的 UIView 對象:spa

[java]  view plain copy
 
 
  1. scrollView.delegate = self;  
  2. - (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView{  
  3. <span style="white-space:pre">    </span>retutn myView;  
  4. }  

Tips:對於大規模數據,你可能會在最初使用一個低於實際大小(1.0)的縮放比例,讓用戶能夠平滑地進行放大。.net

 

2、屬性代理

除了上面用到的縮放屬性外,滾動視圖還有會讓你多其餘屬性,能夠對現實內容的行爲進行微調。你能夠對 UIScrollView 類進行多方位定製。下面這些屬性是最經常使用的。指針

1.indicatorStyle

指定你但願使用的滾動條指示器的類型。默認行爲是在白邊界上繪製黑色的滾動條,這在大多數背景下都適用。可用風格以下:

[java]  view plain copy
 
 
  1. UIScrollViewIndicatorStyleDefault  
  2. UIScrollViewIndicatorStyleBlack  
  3. UIScrollViewIndicatorStyleWhite  

2.contentOffset

 

一個CGPoint結構,其中包含有要顯示內容相對於窗口左上角的偏移量。默認是從0×0開始的,可是你也能夠將顯示內容放在其餘位置。

3.directionalLockEnabled

默認行爲是容許用戶同時進行橫向和縱向的滾動。將這個屬性設置爲YES會致使將用戶的滾動行爲鎖定成只容許橫向或縱向進行,具體方向由初始姿態決定。

4.bounces

當用戶抵達滾動區域邊緣時,這個功能容許用戶稍微拖動到邊界外一點。當用戶鬆開手指後,這個區域會像個橡皮筋同樣,彈回到原位,給用戶一個可見的提示,表示他已經到達了文檔開始或結束位置。若是不想讓用戶的滾動範圍可以超出可見內容,能夠將這個屬性設置爲NO。

5.bouncesZoom

相似於bounces 選項,這個方法能夠令用戶的縮放操做超出最大或最小縮放級別,而後彈回到範圍之內。若是你不想讓用戶可以超出你指定的範圍進行縮放,將這個屬性設置爲NO。

6.pagingEnabled

當開啓了分頁功能時,滾動視圖被分割成多個獨立區段,二用戶的滾動體驗則變成了頁面翻轉,你能夠用這個屬性來進行頁面翻轉。

3、委託方法

能夠賦予滾動視圖一個委託,下列委託方法會在特定時刻收到通知。

[java]  view plain copy
 
 
  1. -(void)scrollViewDidScroll:(UIScrollView*)scrollView;//會在視圖滾動時收到通知。包括一個指向被滾動視圖的指針,從中能夠讀取contentOffset屬性以肯定其滾動到的位置。  
[java]  view plain copy
 
 
  1. -(void)scrollViewWillBeginDragging:(UISCrollView*)scrollView;//當用戶首次在某個方向上進行拖動時獲得通知。這個方法會獲得被做爲參數傳遞的滾動視圖指針,也一樣能夠從中讀取 contentOffset 屬性。  
[java]  view plain copy
 
 
  1. -(void)scrollViewDidEndDragging:(UIScrollView*)scrollView willDecelerate:(BOOL)decelerate;  
  2. //當用戶擡起拖動到手指時獲得通知。還會獲得一個布爾值,知名報告滾動視圖最後位置以前,是否須要減速。  
[java]  view plain copy
 
 
  1. -(void)scrollViewWillBeginDecelerate:(UIScrollView*)scrollView;//當用戶擡起手指而視圖須要繼續移動時,會收到通知。這個方法能夠用來讀取 contentOffset屬性,從而判斷出當用戶擡起手指錢最後一次滾動到的位置,雖然這個位置並不會使滾動條的最終中止位置。  
[java]  view plain copy
 
 
  1. -(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView;//當上面提到的減速完畢、滾動視圖中止時獲得通知。收到這個通知的時刻,滾動視圖的contentOffset屬性會反映出滾動條最終中止的位置。  
[java]  view plain copy
 
 
  1. -(void)scrollViewDidEndZooming:(UIScrollview*)scrollView withView:(UIView*)view atScale:(float)scale;//當用戶對內容進行縮放時,會收到通知。縮放比例表示爲一個浮點值,會做爲參數傳遞進來。  
[java]  view plain copy
 
 
  1. -(BOOL)scrollViewShouldScrollToTop:(UIScrollView*)scrollView;  
  2. -(void)scrollViewDidScrollToTop:(UIScrollView*)scrollView;  
  3. //當用戶點出iPhone狀態條時,滾動視圖委託能夠決定視圖是否滾動回到開頭。  

OK,都總結完了,後面會寫一個頁面翻轉的例子敬請關注。

 

屬性 做用
CGPoint contentOffSet 監控目前滾動的位置
CGSize contentSize 滾動範圍的大小
UIEdgeInsets contentInset 視圖在scrollView中的位置
id<UIScrollerViewDelegate>
delegate
設置協議
BOOL directionalLockEnabled 指定控件是否只能在一個方向上滾動
BOOL bounces 控制控件遇到邊框是否反彈
BOOL alwaysBounceVertical 控制垂直方向遇到邊框是否反彈
BOOL alwaysBounceHorizontal 控制水平方向遇到邊框是否反彈
BOOL pagingEnabled 控制控件是否整頁翻動
BOOL scrollEnabled 控制控件是否能滾動
BOOL showsHorizontalScrollIndicator 控制是否顯示水平方向的滾動條
BOOL
showsVerticalScrollIndicator
控制是否顯示垂直方向的滾動條
UIEdgeInsets scrollIndicatorInsets 指定滾動條在scrollerView中的位置
UIScrollViewIndicatorStyle
indicatorStyle
設定滾動條的樣式
float decelerationRate 改變scrollerView的減速點位置
BOOL tracking 監控當前目標是否正在被跟蹤
BOOL dragging 監控當前目標是否正在被拖拽
BOOL decelerating 監控當前目標是否正在減速
BOOL delaysContentTouches 控制視圖是否延時調用開始滾動的方法
BOOL canCancelContentTouches 控制控件是否接觸取消touch的事件
float minimumZoomScale 縮小的最小比例
float maximumZoomScale 放大的最大比例
float zoomScale 設置變化比例
BOOL bouncesZoom 控制縮放的時候是否會反彈
BOOL zooming 判斷控件的大小是否正在改變
BOOL zoomBouncing 判斷是否正在進行縮放反彈
BOOL scrollsToTop 控制控件滾動到頂部
相關文章
相關標籤/搜索