在滾動過程當(dāng)中,其實是在修改原點坐標
當(dāng)手指觸摸后, scroll view會暫時攔截觸摸事件,使用一個
計時器,假如在計時器到點后,沒有發(fā)生手指移動事件,
那么,scroll view發(fā)送tracking events到被點擊的subview
假如在計時器到點前,發(fā)生了移動事件,那么 scroll view 取消tracking
自己發(fā)生滾動
子類可以重載touchesShouldBegin:withEvent:inContentView: 決定自己是否接收touch事件
pagingEnabled當(dāng)值是YES,會自動滾動到subview的邊界,默認是NO
touchesShouldCancelInContentView: 開始發(fā)送tracking messages消息給subview的時候
調(diào)用這個方法,決定是否發(fā)送tracking messages消息到subview,假如返回NO,發(fā)送,YES則不發(fā)送
假如 canCancelContentTouches屬性是NO,則不調(diào)用這個方法
來影響如何處理滾動手勢
scroll view還處理縮放和平移手勢
要實現(xiàn)縮放和平移,必須實現(xiàn)委托viewForZoomingInScrollView:
scrollViewDidEndZooming:withView:atScale:
兩個方法,另外 maximumZoomScale和minimumZoomScale兩個屬性要不一樣
幾個屬性
tracking
當(dāng)touch后還沒有拖動的時候,值是YES,否則NO
zoomBouncing
當(dāng)內(nèi)容放大到最大或者最小的時候,值是YES,否則NO
zooming
當(dāng)正在縮放的時候,值是YES,否則NO
decelerating
當(dāng)滾動后,手指放開,但是還在繼續(xù)滾動中,這個時候是 YES,其他是NO
decelerationRate
設(shè)置手指放開后的減速率
maximumZoomScale
一個浮點數(shù),表示能放最大的倍數(shù)
minimumZoomScale
一個浮點數(shù),表示能縮最小的倍數(shù)
pagingEnabled
當(dāng)值是YES,會自動滾動到subview的邊界,默認是NO
scrollEnabled
決定是否可以滾動
delaysContentTouches
是個布爾值,當(dāng)值是YES的時候,用戶觸碰開始,scroll view要延遲一會,看看是否用戶有意圖滾動,假如滾動了,那么捕捉touch-down事件,否則就不捕捉, 假如值是NO,當(dāng)用戶觸碰, scroll view會立即觸發(fā)touchesShouldBegin:withEvent:inContentView:, 默認是YES
canCancelContentTouches
當(dāng)值是YES的時候逛漫,用戶觸碰后体箕,然后在一定時間內(nèi)沒有移動刨沦,scrollView發(fā)送tracking events眶诈,然后用戶移動手指足夠長度觸發(fā)滾動事件避诽,這個時候,scrollView發(fā)送了touchesCancelled:withEvent: 到subview咧擂,然后scroView開始滾動
假如值是NO,scrollView發(fā)送tracking events后搀崭,就算用戶移動手指,scrollView也不會滾動
contentSize
里面內(nèi)容的大小秒梅,也就是可以滾動的大小旗芬,默認是0,沒有滾動效果捆蜀。
showsHorizontalScrollIndicator
滾動時,是否顯示水平滾動條
showsVerticalScrollIndicator
滾動時,是否顯示垂直滾動條
bounces
默認是yes,就是滾動超過邊界,會反彈有反彈回來的效果,假如是 NO,那么滾動到達邊界,那么會連忙停止
bouncesZoom
和bounces類似,區(qū)別在于,這個效果反映在縮放上面,假如縮放超過最大縮放,那么會反彈效果,假如是NO,則到達最大或者最小的時候,立即停止
directionalLockEnabled
默認是NO, 可以在垂直和水平方向同時運動, 當(dāng)值是YES, 假如一開始是垂直或者是水平運動,那么接下來會鎖定另外一個方向的滾動, 假如一開始是對角方向滾動,則不會禁止某個方向
indicatorStyle
滾動條的樣式,基本只是設(shè)置顏色,總共3個顏色,默認,黑色的,白色的
scrollIndicatorInsets
設(shè)置滾動條的位置
原文地址?http://www.cocoachina.com/bbs/read.php?tid-40965-page-1.html