UIScrollView簡略瞭解動畫
UIScrollView,這個類的功能就是顯示一些比當前控件的框更大的內容,能夠拖拽,兩個手指捏來縮小放大。atom
UIScrollView的子類也比較好用,好比UITableView和UITextView。orm
接下來看一下UIScrollView的接口:對象
關於內容的顯示的管理的方法與屬性
- setContentOffset:animated:
設置內容和view的原點之間的偏移量。
- (void)setContentOffset:(CGPoint)contentOffset
animated:(BOOL)animated接口
contentOffset,一個點,(x,y),也就是距離座標原點的偏移量
animated,動畫,設置成yes就是在偏移移動的時候會有一個定量的速率,設置成NO就直接移動。事件
@property(nonatomic) CGPoint contentOffset
設置偏移量,默認是CGPointZero,也就是原點ip
@property(nonatomic) CGSize contentSize
內容的大小,默認是CGSizeZeroci
@property(nonatomic) UIEdgeInsets contentInset
內容和邊緣的間隔get
關於管理拖動的屬性和方法flash
@property(nonatomic, getter=isScrollEnabled) BOOL scrollEnabled
允不容許拖動內容,
@property(nonatomic, getter=isDirectionalLockEnabled) BOOL directionalLockEnabled
會鎖定某一個方向的拖動。默認是NO,也就是能夠隨意在橫向和豎向拖動。若是設置成YES的話,一旦開始在橫向或者豎向拖動,那麼另外一
個方向的拖動就會被鎖死。若是開始的拖動是斜向的,那麼就至關於NO,能夠隨便拖。(也是醉了)。
@property(nonatomic) BOOL scrollsToTop
點擊狀態欄,能夠回到最上面的這麼一個功能,默認是YES的。
Tip:若是在iPhone的一個界面上有多個ScrollView都設置了這個屬性爲YES,那麼點擊狀態欄會是沒有效果的。
- (void)scrollRectToVisible:(CGRect)rect
animated:(BOOL)animated
這個方法可讓rect中定義的這些內容恰好在屏幕上展現。
@property(nonatomic, getter=isPagingEnabled) BOOL pagingEnabled
這個屬性設置成YES的話,會在多個scrollview之間的界限中止,也就是產生一頁一頁的效果。
@property(nonatomic) BOOL bounces
在內容碰到邊緣的時候會有彈跳的效果,默認是YES。
@property(nonatomic) BOOL alwaysBounceVertical
橫向的彈跳效果設置,前提是上面的bounces屬性設置成yes。
@property(nonatomic) BOOL alwaysBounceHorizontal
豎向的彈跳效果設置,條件同上
- (BOOL)touchesShouldBegin:(NSSet *)touches
withEvent:(UIEvent *)event
inContentView:(UIView *)view
這是一個應該由子類來覆蓋的方法,
touches是一個UITouch實例的集合
event是touch對應的事件
view是子視圖
返回值是NO的話表示你不想發送時間消息給view,若是你想要view接受消息,就返回YES。
這個的默認行爲是把消息給觸摸事件的響應鏈。
- (BOOL)touchesShouldCancelInContentView:(UIView *)view
view是內容之中被觸摸的view對象
返回YES就是取消發送進一步的觸摸消息給View
@property(nonatomic) BOOL canCancelContentTouches
設置成YES,若是內容中的view偵測到手指點擊了這個內容,可是同時用戶的手指開始滑動,view就會收到touchesCancelled:withEvent
:消息,而且將這個觸摸解釋爲拖動,由scrollView進行處理。若是設置成no,那麼就無論拖動,開始偵測內容視圖的點擊。
@property(nonatomic) BOOL delaysContentTouches
判斷是否真的要進行拖動,在決定以前進行一個延時。
@property(nonatomic) CGFloat decelerationRate
用一個浮點數來設定減速的速率
@property(nonatomic, readonly, getter=isDragging) BOOL dragging
只讀屬性,判斷用戶是否是已經開始拖動內容了
@property(nonatomic, readonly, getter=isTracking) BOOL tracking
只讀,用戶出沒了內容可是尚未開始拖動
@property(nonatomic, readonly, getter=isDecelerating) BOOL decelerating
只讀,用戶的手指離開了屏幕,可是畫面的拖動還在繼續,顯示是否在繼續。
關於管理這個UIScrollView的界面風格的屬性和方法
@property(nonatomic) UIScrollViewIndicatorStyle indicatorStyle
默認的UIScrollView界面風格是UIScrollViewIndicatorStyleDefault
這些東西是常量,用枚舉定義
typedef enum : NSInteger {
UIScrollViewIndicatorStyleDefault,
UIScrollViewIndicatorStyleBlack,
UIScrollViewIndicatorStyleWhite
} UIScrollViewIndicatorStyle;
@property(nonatomic) UIEdgeInsets scrollIndicatorInsets
顯示的部分與scrollView部分的邊緣間隔
@property(nonatomic) BOOL showsHorizontalScrollIndicator
控制的是水平上的scroll進度顯示是否是可見的。
默認是YES。當偵測到觸摸的時候可見,在觸摸以後消失
@property(nonatomic) BOOL showsVerticalScrollIndicator
同上,這個是控制豎向方向的。
- (void)flashScrollIndicators
立刻顯示scrollView的顯示部分,在須要把scroll view放到最上面的時候,調用這個方法。
@property(nonatomic, readonly) UIPanGestureRecognizer *panGestureRecognizer
拖動手勢識別器,更加精確的控制,具體是哪個手勢是用戶實行的。
@property(nonatomic, readonly) UIPinchGestureRecognizer *pinchGestureRecognizer
捏放手勢識別器,兩根手指的手勢
- (void)zoomToRect:(CGRect)rect
animated:(BOOL)animated
定位到一個特定的rect
@property(nonatomic) CGFloat zoomScale
表示縮放幅度的浮點數
- (void)setZoomScale:(CGFloat)scale
animated:(BOOL)animated
設置縮放範圍幅度
設置的值要在minimumZoomScale和maximumZoomScale.之間
@property(nonatomic) CGFloat maximumZoomScale
@property(nonatomic) CGFloat minimumZoomScale
縮放範圍的最大值和最小值
@property(nonatomic, readonly, getter=isZoomBouncing) BOOL zoomBouncing
表示已經超越了縮放範圍的邊界,會自動縮放回到定義的範圍以內,在自動縮放的過程當中會是YES,其餘時間是NO。
@property(nonatomic, readonly, getter=isZooming) BOOL zooming
表示當前是否正在縮放的標誌
@property(nonatomic) BOOL bouncesZoom
表示是否是要回到正常的範圍
管理委託的屬性
@property(nonatomic, assign) id< UIScrollViewDelegate > delegate
這個事scrollview的委託對象
只要是遵循了UIScrollViewDelegate的對象均可以
@property(nonatomic) UIScrollViewKeyboardDismissMode keyboardDismissMode
在手指從新開始拖動視圖的時候,顯示的鍵盤會消失,這個屬性就是定義鍵盤消失的方式。
typedef enum : NSInteger {
UIScrollViewKeyboardDismissModeNone,
UIScrollViewKeyboardDismissModeOnDrag,
UIScrollViewKeyboardDismissModeInteractive
}UIScrollViewKeyboardDismissMode;
最後是類之中定義了的兩個常量。拖動之中的減速速率const float UIScrollViewDecelerationRateNormal;const float UIScrollViewDecelerationRateFast;