ScrollView

ScrollView

視圖的滾動過程,其實是在不斷修改原點坐標。當手指觸摸後,ScrollView會暫時攔截觸摸事件,使用一個計時器。假如在計時器到點後沒有發生手指移動事件,那么ScrollView傳送tracking events到被點擊的subView;若是在計時器到點後發生了移動事件,那么ScrollView取消tracking自己促發滾動。

基本原理

其子類可以重載
touchesShouldBegin: withEvent: inContentView: 決定自己是否接收touch事件。

pagingEnabled: 當值是YES會自動滾動到subView的邊界,默認是NO。

touchesShouldCancelInContentView: 開始傳送tracking messages訊息給subView的時候會調用這個方法。以決定是否傳送tracking messages訊息到subView。假如返回NO,傳送。YES則不傳送。若是canCancelContentTouches屬性是NO,則不調用這個方法來影響如何處理滾動手勢。

ScrollView還可處理縮放和平移手勢,要實現這必須實現委託viewForZoomingInScrollView:和scrollViewDidEndZooming: withView: atScale:兩個方法。另外maximumZoomScale和minimumZoomScale兩個屬性要不一樣 。

常用屬性

帶滾動條的滑動視圖 帶滾動條的滑動視圖
maximumZoomScale 能放大的最大倍數,是浮點數。

minimumZoomScale 能縮小的最小倍數,是浮點數。

pagingEnabled 是否自動滾動到subView邊界

scrollEnabled 是否可以滾動

contentSize 裡面內容的大小,即可以滾動的大小,默認是0,沒有滾動效果

showsHorizontalScrollIndicator 滾動時是否顯示水平滾動條

showsVerticalScrollIndicator 滾動時是否顯示垂直滾動條

bounces 默認是YES,就是滾動超過邊界會反彈,即有反彈回來的效果。若是NO,則滾動到達邊界會立刻停止

bouncesZoom 與bounces類似,只是反映在縮放效果上。

directionalLockEnabled 默認是NO,可以在垂直和水平方向同時運動。當值是YES時,視哪個方向開始則鎖定另外一個方向的滾動。

indicatorStyle 滾動條的樣式。總共3色:默認、黑、白

scrollIndicatorInsets 設定滾動條位置

tracking 當touch後還沒有拖動的時候是YES,否則NO

zoomBouncing 當內容放大到最大或者最小的時候值是YES,否則NO

zooming 當正在縮放的時候值是YES,否則NO

decelerating 當滾動後,手指放開但還在繼續滾動中。此時是YES,其它時候都是NO

decelerationRate 設定手指放開後的減速率

使用方法

初始化

一般的控制項初始化都是可以用alloc和init來初始化的。
UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0,0.0,self.view.frame.size.width, 400)];

關於控制項添加與初始化,建議都採用代碼調用合適的初始化方法來操作,雖然IB布局能夠節省時間,但不能很好的了解整個代碼執行流程。

委託方法

UIScrollView也要指定委託對象,該委託對象的控制器同樣也要遵循UIScrollViewDelegate協定,實現其相應的代理方法。

scrollViewDidScroll:

scrollViewWillBeginDragging:

scrollViewDidEndDragging:

scrollViewDidEndDecelerating:

屬性匯總

android:scrollbars

設定滾動條顯示。none(隱藏),horizontal(水平),vertical(垂直)。

android:scrollbarFadeDuration

設定滾動條淡出效果(從有到慢慢的變淡直至消失)時間,以毫秒為單位。Android2.2中滾動條滾動完之後會消失,再滾動又會出來,在1.5、1.6版本裡面會一直顯示著。

android:scrollbarSize

設定滾動條的寬度。

android:scrollbarStyle

設定滾動條的風格和位置。設定值:insideOverlay、insideInset、outsideOverlay、outsideInset

android:scrollbarThumbHorizontal

設定水平滾動條的drawable。

android:scrollbarThumbVertical

設定垂直滾動條的drawable.

android:scrollbarTrackHorizontal

設定水平滾動條背景(軌跡)的色drawable

android:soundEffectsEnabled

設定點擊或觸摸時是否有聲音效果

相關詞條

熱門詞條

聯絡我們