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
設定點擊或觸摸時是否有聲音效果

相關詞條

熱門詞條

聯絡我們