UIScrollView的屬性總結,uiscrollview總結
Properties
alwaysBounceHorizontal //一個布爾值,決定是否彈跳總是出現水平滾動時達到結束內容的看法。預設值是NO 。
@property(nonatomic) BOOL alwaysBounceHorizontal //如果這個屬性被設定為YES而且bounces的值是YES,水平拖動是允許的內容,即使小於滾動視圖的邊界。預設值是NO
alwaysBounceVertical //一個布爾值,決定是否反彈總是發生在垂直滾動到達結束內容。預設值是NO 。
@property(nonatomic) BOOL alwaysBounceVertical // //如果這個屬性被設定為YES而且bounces的值是YES,垂直拖動是允許的內容,即使小於滾動視圖的邊界。預設值是NO
bounces //控制滾動視圖是否反彈過去內容的邊緣,然後再返回一個布爾值。
@property(nonatomic) BOOL bounces //預設值是YES 。
bouncesZoom //一個布爾值,決定當縮放超過上限或下限時是否滾動視圖推動內容縮放。
@property(nonatomic) BOOL bouncesZoom //如果這個屬性的值是YES並且變焦縮放超過上限或下限,返回他們之前滾動視圖暫時縮放內容。如果這屬性是NO,立即停止在一個比例限制縮放。預設是YES。
canCancelContentTouches //一個布爾值,控制是否涉及到的內容視圖中總是導致跟蹤。
@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;
}