在iOS開發中能夠說UIScollView是全部滑動類視圖的基礎,包括UITableView,UIWebView,UICollectionView等等,UIScrollView類爲顯示大於應用程序窗口的內容提供支持。它使得用戶可使用滑動手勢來滾動,並可使用擴張/收縮手勢來放大縮小部份內容。UIScrollView類能夠擁有一個代理,該代理採用UIScrollViewDelegate協議。對於縮放的工做,代理必須實現viewForZoomingInScrollView:以及scrollViewDidEndZooming:withView:atScale:;此外,最大(maximumZoomScale)和最小(minimumZoomScale)縮放規模必須不一樣。前端
其中有不少經常使用到的屬性設置和方法,在這裏統一作下記錄。動畫
設置UITextView或者UITableView時,文字上方或table上總會留一片空白區域,緣由在於navigation bar!!!spa
凡是繼承UIScrollView的控件都會受到UIViewController的這個automaticallyAdjustsScrollViewInsets屬性的影響,默認爲YES,當有navigation bar的時候,UITextView的表現就是上面空白,設爲NO,UITextView就正常了。代理
若是用了storyboard,那麼也能夠在storyboard裏面作更改orm
布爾值,規定是否在水平方向在滾動到末尾時產生「反彈」。對象
若該屬性及bounces被設定爲YES,水平拖拽即便在內容小於滾動視圖邊緣時也被容許。默認值爲NO。繼承
布爾值,規定是否在垂直方向在滾動到末尾時產生「反彈」。事件
若該屬性及bounces被設定爲YES,垂直拖拽即便在內容小於滾動視圖邊緣時也被容許。默認值爲NO。ci
布爾值,控制是否滾動視圖可否超出內容邊緣再彈回。開發
若該屬性的值爲YES。滾動視圖會在遇到內容邊緣時反彈。若值爲NO,滾動會在達到邊緣時當即中止而不反彈。默認值爲YES。
布爾值,規定滾動視圖是否在縮放超出最大值和最小值動畫時播放內容縮放動畫。
若該屬性的值爲YES,在縮放超出最大值或最小值時,滾動視圖會臨時播放一個稍超出限制範圍的動畫再返回限制大小。若該屬性爲NO,縮放會在達到限制大小時當即中止,默認爲YES。
布爾值,控制觸摸內容視圖時是否老是致使跟蹤。
若該屬性的值爲YES,內容中的視圖會開始跟蹤觸摸的手指,若用戶拖拽手指到足以滾動的距離,視圖會收到touchesCancelled:withEvent:信息,而滾動視圖會做爲一個滾動事件處理此次觸摸。若該屬性的值爲NO,滾動視圖在內容視圖開始跟蹤時將無視手指移動,不進行滾動。
表示內容視圖從封閉滾動視圖中被嵌入的距離。
用該屬性增長圍繞內容的滾動區域。單位爲點。默認值爲UIEdgeInsetssZero。
表示從滾動視圖的原點到內容視圖的原點的偏移的點。
默認值爲CGPointZero。
內容視圖的大小。
單位是點。默認值是CGSizeZero。
返回滾動視圖中的內容是否在提起手指後繼續移動。(只讀)
若用戶已再也不拖拽內容但滾動還在發生時返回YES。
浮點數,規定用戶提起手指後的滾動減速速率。
你的應用程序可使用UIScrollViewDecelerationRateNormal和UIScrollViewDecelerationRateFast常量做爲引用點以得到一個合理的減速速率。
布爾值,規定滾動視圖是否延遲處理觸摸下壓手勢。
若該屬性值爲YES,滾動視圖會延遲處理下壓手勢直到能夠肯定該操做的意圖是不是滾動。若值爲NO,滾動視圖會當即調用touchesShoudBegin:withEvent:inContentView:。默認值爲YES。
具體討論詳見類討論。
滾動視圖對象的託管。
託管必須實現UIScrollViewDelegate協議。UIScrollView類(不保持託管),會調用託管實現中的每個方法。
布爾值,規定是否滾動在某一方向上被禁止。
若該屬性爲NO,滾動在水平和垂直方向上都被容許。若該屬性爲YES,當用戶開始某一方向的滾動(水平或垂直),滾動視圖會禁止另外一方向的滾動。若以對角線方向拖動,滾動則不會被鎖定且用戶在本次拖動完成以前能夠在任意方向拖動。默認值爲NO。
布爾值,代表用戶是否開始滾動內容。
該屬性持有的值可能須要滾動一段時間或距離纔會被設定成YES。
滾動控制器的風格。
默認風格是UIScrollViewIndicatorStyleDefault。參見「Scroll Indicator Style」獲取更多關於此常量的描述。
浮點數,指定可被應用滾動視圖內容的最大縮放因子。
該值規定了內容可被放大到多大。默認值爲1.0。
浮點數,指定可被應用滾動視圖內容的最小縮放因子。
該值規定了內容可被縮小到多小。默認值爲1.0。
布爾值,規定滾動視圖是否能夠翻頁。
若該值爲YES,滾動視圖會在用戶滾動時中止在滾動視圖邊框的整數倍處。默認值爲NO。
當前用於滑動手勢的手勢識別器(只讀)
在但願更加精確地控制被滾動視圖識別的滑動手勢時,你的應用程序可訪問此屬性。
當前用於擴張/收縮手勢的手勢識別器(只讀)
在但願更加精確地控制被滾動視圖識別的擴張/收縮手勢時,你的應用程序可訪問此屬性。
布爾值,規定是否容許滾動。
若該屬性的值爲YES,容許滾動,若爲NO,禁止滾動。默認值爲YES。
當滾動被禁止時,滾動視圖將再也不接受觸摸事件;滾動視圖會將事件傳送至響應鏈中。
表示滾動指示器從封閉滾動視圖中被嵌入的距離。
默認值爲UIEdgeInsetssZero。
布爾值,控制滾動至頂部的手指是否有效。
滾動至頂部手勢是觸摸狀態欄;當此屬性爲YES時,滾動視圖在此手勢發生時跳轉至狀態欄。此屬性默認爲YES。
該手勢做用於單個可見的滾動視圖;如有多個滾動視圖(例如,日期選擇器)設定了這個屬性,或者若託管在scrollViewShouldScrollToTop:中返回了NO,UIScrollView會無視滾動到頂部的請求。在滾動視圖滾動到內容視圖的頂部以後,它會給託管發送一個scrollViewDidScrollToTop:信息。
布爾值,控制是否水平滾動指示器可見。
默認值爲YES。指示器會在跟蹤時顯示並在跟蹤以後消失。
布爾值,控制是否垂直滾動指示器可見。
默認值爲YES。指示器會在跟蹤時顯示並在跟蹤以後消失。
返回用戶是否觸摸內容並初始化滾動。(只讀)
若用戶已觸摸內容視圖但能夠還示開始拖動時該屬性值爲YES。
布爾值,代表縮放已超過了指定接收器的縮放限制。
若滾動視圖縮放超出最大值或最小值時該值爲YES;不然值爲NO。
布爾值,代表內容視圖當前是否在縮。
若用戶發出了一個縮放手指,該值爲YES,不然爲NO。
浮點數,指定當前應用於滾動視圖的內容的縮放因子。
該值規定了內容當前縮放了多少。默認值是1.0。
短暫地顯示滾動指示器。
你應該在把滾動視圖放在最前端時調用此方法。
滾動內容的指定區域以便使內容在接受器中可見。
-(void)scrollRectToVisible:(CGRect)rectanimated:(BOOL)animated
參數:
rect
定義內容視圖區域的矩形。
animated
若滾動應被動畫化則傳入YES,不然爲NO。
該方法滾動內容視圖以使rect中定義的區域能夠恰好顯示在滾動視圖中。若區域已是可見的,該方法什麼也不作。
設定內容視圖原點相對於接收器原點的偏移。
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
參數
contentOffset
內容視圖原點的偏移點(以點的形式表示)。
animated
若YES,用一個恆定的速度以動畫形式移動到新的偏移處;NO則當即移動。
浮點數,指定當前縮放因子。
- (void)setZoomScale:(float)scale animated:(BOOL)animated
參數
scale
要縮放內容到的新值。
animated
若YES,動畫化縮放到時新的縮放大小,NO則當即縮放。
新的縮放值應在minnumZoomScale和maximumZoomScale之間。