Properties atom
alwaysBounceHorizontal //一個布爾值,決定是否彈跳老是出現水平滾動時達到結束內容的見解。默認值是NO 。orm
@property(nonatomic) BOOL alwaysBounceHorizontal //若是這個屬性被設置爲YES並且bounces的值是YES,水平拖動是容許的內容,即便小於滾動視圖的邊界。默認值是NO 對象
alwaysBounceVertical //一個布爾值,決定是否反彈老是發生在垂直滾動到達結束內容。默認值是NO 。 事件
@property(nonatomic) BOOL alwaysBounceVertical // //若是這個屬性被設置爲YES並且bounces的值是YES,垂直拖動是容許的內容,即便小於滾動視圖的邊界。默認值是NOip
bounces //控制滾動視圖是否反彈過去內容的邊緣,而後再返回一個布爾值。ci
@property(nonatomic) BOOL bounces //默認值是YES 。 get
bouncesZoom //一個布爾值,決定當縮放超過上限或下限時是否滾動視圖推進內容縮放。flash
@property(nonatomic) BOOL bouncesZoom //若是這個屬性的值是YES而且變焦縮放超過上限或下限,返回他們以前滾動視圖暫時縮放內容。若是這屬性是NO,當即中止在一個比例限制縮放。默認是YES。 it
canCancelContentTouches //一個布爾值,控制是否涉及到的內容視圖中老是致使跟蹤。io
@property(nonatomic) BOOL canCancelContentTouches
contentInset //內容視圖的距離,是從封閉的滾動視圖插圖。
@property(nonatomic) UIEdgeInsets contentInset //使用這個屬性添加到周圍滾動區域的內容。大小的單位是點。默認值是UIEdgeInsetsZero 。
//在哪一個點的內容視圖的起源是從滾動視圖的原點偏移 監控目前滾動的位置
@property(nonatomic) CGPoint contentOffset //默認值爲CGPointZero
contentSize //內容視圖的大小。
@property(nonatomic) CGSize contentSize //大小的單位是點。默認大小CGSizeZero的。
decelerating //返回的內容是否在滾動視圖後,用戶解除他們的手指。 (只讀)
@property(nonatomic, readonly, getter=isDecelerating) BOOL decelerating //若是用戶不拖動內容但滾動事件仍發生 ,返回的值是YES。
decelerationRate //一個浮點值,肯定在用戶解除他們的手指後的減速率。
@property(nonatomic) float decelerationRate //使用的UIScrollViewDecelerationRateNormal和UIScrollViewDecelerationRateFas常數做爲合理減速率的參考點。
delaysContentTouches //一個布爾值,決定是否推遲滾動視圖觸摸手勢的處理。
@property(nonatomic) BOOL delaysContentTouches //若是這個屬性的值是YES ,滾動視圖延誤處理的觸摸式的姿態,直到它能夠決定
是否滾動是意圖。若是該值是NO,滾動視圖當即調用touchesShouldBegin : withEvent:inContentView :默認值是YES 。
delegate //滾動視圖對象的表明。
@property(nonatomic, assign) id delegate //該委託必須採起UIScrollViewDelegate的協議。 UIScrollView的類調用委託實現每一個協議的方法,它不保留委託。
directionalLockEnabled //一個布爾值,決定是否在某一特定方向禁用滾動
@property(nonatomic, getter=isDirectionalLockEnabled) BOOL directionalLockEnabled //若是此屬性是NO,則滾動容許在水平和垂直方向。如果YES,則只在使用者最開始滾動的方向上進行(水平或垂直),若開始滾動是沿對角線方向的則可任意方向滾動。默認值是NO。
dragging //一個布爾值,指示用戶是否已經開始滾動內容。 (只讀)
@property(nonatomic, readonly, getter=isDragging) BOOL dragging /在它被設置爲YES以前,這個屬性的值可能須要一些時間或滾動的距離
indicatorStyle //滾動指標的風格。
@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle //默認的風格UIScrollViewIndicatorStyleDefault 。詳見 「Scroll Indicator Style」
說明這些常數
maximumZoomScale //一個浮點值指定可用於滾動視圖的內容的最大規模的因素。
@property(nonatomic) float maximumZoomScale //此值肯定多大的內容能夠擴展。它必須大於最小縮放比例縮放才能啓用。默認值是1.0 。
Discussion
minimumZoomScale 浮點值,指定可應用於滾動視圖的內容的最低比例因子
@property(nonatomic) float minimumZoomScale //此值決定如何能夠縮放小內容。默認值是1.0
pagingEnabled //一個布爾值,決定是否啓用分頁滾動視圖。
@property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled //若是這個屬性的值是YES,當用戶滾動時,滾動視圖中止滾動視圖的邊界的倍數。默認值是NO 。
panGestureRecognizer //泛手勢的基本手勢識別。 (只讀)
@property(nonatomic, readonly) UIPanGestureRecognizer *panGestureRecognizer //你的應用程序訪問此屬性,當它但願可以經過滾動視圖更精確地控制泛手勢確認。
pinchGestureRecognizer //捏的基本的手勢識別。 (只讀)
@property(nonatomic, readonly) UIPinchGestureRecognizer *pinchGestureRecognizer //你的應用程序訪問此屬性時,它但願可以經過滾動視圖更精確地控制捏手勢確認。
scrollEnabled //一個布爾值,決定是否啓用滾動。
@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled //若是這個屬性的值是YES ,滾動啓用,若是它是NO,滾動被禁用。默認值是YES。 被禁用滾動時,滾動視圖不接受觸摸事件,將其轉發響應鏈。
scrollIndicatorInsets //滾動指標點到滾動視圖的邊緣的距離。
@property(nonatomic) UIEdgeInsets scrollIndicatorInsets //默認值爲UIEdgeInsetsZero
scrollsToTop //一個布爾值,控制是否滾動到頂部的姿態是有效的
@property(nonatomic) BOOL scrollsToTop //當設爲YES,發生這種姿態時滾動視圖跳轉到內容頂端,此屬性的默認值是YES 。
showsHorizontalScrollIndicator //一個布爾值,控制水平滾動指標是不是可見的。
@property(nonatomic) BOOL showsHorizontalScrollIndicator //默認值是YES 。指標是可見的,而跟蹤正在進行,結束後淡出。
showsVerticalScrollIndicator //一個布爾值,控制垂直滾動指標是不是可見的。
@property(nonatomic) BOOL showsVerticalScrollIndicator ////默認值是YES 。指標是可見的,而跟蹤正在進行,結束後淡出。
tracking //返回判斷是否用戶觸碰內容觸發滾動 (只讀)
@property(nonatomic, readonly, getter=isTracking) BOOL tracking //若是用戶已經觸及的內容視圖但可能尚未開始拖動它。這個屬性的值即是YES
zoomBouncing // 一個布爾值,指示縮放已超過指定的接收範圍。 (只讀)
@property(nonatomic, readonly, getter=isZoomBouncing) BOOL zoomBouncing //這個屬性的值是YES若是滾動視圖縮放回最小或最大變焦縮放值;不然值爲NO 。
zooming //一個布爾值,指示內容是否定爲正在放大或縮小。 (只讀)
@property(nonatomic, readonly, getter=isZooming) BOOL zooming //若是用戶縮放手勢,不然它是沒有這個屬性的值是YES
zoomScale //一個浮點值,指定目前用於滾動視圖的內容的比例因子。
@property(nonatomic) float zoomScale //此值肯定多少內容目前正在縮放。默認值是1.0
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 控制控件滾動到頂部
這裏把UIScrollView的幾個要點總結下:
從你的手指touch屏幕開始,scrollView開始一個timer,若是:
1. 150ms內若是你的手指沒有任何動做,消息就會傳給subView。
2. 150ms內手指有明顯的滑動(一個swipe動做),scrollView就會滾動,消息不會傳給subView,這裏就是產生問題二的緣由。
3. 150ms內手指沒有滑動,scrollView將消息傳給subView,可是以後手指開始滑動,scrollView傳送touchesCancelled消息給subView,而後開始滾動。
觀察下tableView的狀況,你先按住一個cell,cell開始高亮,手不要放開,開始滑動,tableView開始滾動,高亮取消。
delaysContentTouches的做用:
這個標誌默認是YES,使用上面的150ms的timer,若是設置爲NO,touch事件當即傳遞給subView,不會有150ms的等待。
cancelsTouches的做用:
這個標準默認爲YES,若是設置爲NO,這消息一旦傳遞給subView,這scroll事件不會再發生。
Instance Methods
flashScrollIndicators //暫時顯示滾動指標。
- (void)flashScrollIndicators //當你把滾動視圖移動到前面,你應該調用此方法。
scrollRectToVisible:animated: //滾動一個特定區域的內容以便它在接收是可見的
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated //此方法滾動查看內容,以便由rect定義的區域僅僅是滾動視圖內是可見的。若是該地區已經是可見的,該方法什麼都不作。
參數:
rect //定義一個矩形面積的內容視圖。
animated //YES if the scrolling should be animated, NO if it should be immediate.
setContentOffset:animated: 設置從內容視圖的原點偏移對應接收機的起源
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
參數:
contentOffset //從內容視圖的原點偏移的一個點
animated YES表示以一個恆定的速度過渡到新的偏移,NO表示當即到達
setZoomScale:animated: //一個浮點數指定當前的縮放比例
- (void)setZoomScale:(float)scale animated:(BOOL)animated //新的值應該在是minimumZoomScale和maximumZoomScale之間
參數:
scale //縮放內容的新的值。
animated //YES推進過渡到新的規模, NO 以使當即過渡。
touchesShouldBegin:withEvent:inContentView: //自定義默認行爲,當手指觸摸在顯示的內容由子類重寫。
- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view //UIScrollView的默認行爲是調用觸摸事件發生的UIResponder的事件處理方法的目標子視圖
參數:
touches //一個涉及的UITouch實例集表明表示事件的開始階段
event //表明在觸摸觸摸對象屬於事件的對象。
view //在內容中發生觸摸手勢子視圖。
Return Value //返回NO ,若是你不想滾動視圖發送的事件消息查看。若是你想以接收這些消息,返回YES (默認) 。
touchesShouldCancelInContentView: //返回是否取消有關的內容子視圖的接觸,並開始拖動。
- (BOOL)touchesShouldCancelInContentView:(UIView *)view //它開始發送跟蹤郵件的內容視圖後動視圖調用此方法。若是它從這種方法收到NO便中止拖動和轉發觸摸事件的內容子視圖。滾動視圖不調用此方法若是canCancelContentTouches 屬性值是NO
參數:
view 在內容中被觸發的視圖對象
Return Value //YES取消進一步觸控消息查看,NO查看繼續收到這些消息。若是視圖認爲是否是一個UIControl對象默認YES,不然返回NO
zoomToRect:animated: //縮小到特定區域的內容,因此它是在接收器中可見。
- (void)zoomToRect:(CGRect)rect animated:(BOOL)animated //這種方法調整的zoomScale進行必要的縮放以便使內容視圖成爲由矩形定義的區域
rect //矩形定義內容視圖區
animated //YES if the scrolling should be animated, NO if it should be immediate.
Constants
Scroll Indicator Style
typedef enum { //指示器風格設置
UIScrollViewIndicatorStyleDefault, //默認,
UIScrollViewIndicatorStyleBlack, //適用於白色內容背景
UIScrollViewIndicatorStyleWhite
} UIScrollViewIndicatorStyle;
Deceleration Constants //減速常數
The rate of deceleration for a scrolling view.
{
const float UIScrollViewDecelerationRateNormal; //默認減速率
const float UIScrollViewDecelerationRateFast;
}