UIScrollView 屬性方法

1、簡單介紹UIScrollView

移動設備的屏幕大小是有限的,因此直接展示在用戶眼前的內(nèi)容也相當有限。當展示的內(nèi)容較多,超出一個屏幕時,用戶可通過滾動手勢來查看屏幕以外的內(nèi)容,普通的UIView不具備滾動功能,不能顯示過多的內(nèi)容。
UIScrollView是一個能夠滾動的視圖控件,可以用來展示大量的內(nèi)容,并且可以通過滾動查看所有的內(nèi)容。

2、UIScrollView常用屬性和方法

內(nèi)容視圖相關

@property(nonatomic) CGSize     contentSize;   //這個屬性用來表示UIScrollView內(nèi)容的尺寸,滾動范圍
@property(nonatomic) CGPoint   contentOffset;   //內(nèi)容偏移量,表示UIScrollView滾動到的位置
@property(nonatomic) UIEdgeInsets  contentInset; //內(nèi)邊距

// 設置內(nèi)容視圖的原點相對于scrollView的原點的偏移量
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated;

滑動相關

@property(nonatomic,getter=isDirectionalLockEnabled) BOOL  directionalLockEnabled; //是否只允許同時滑動一個方向
@property(nonatomic,getter=isPagingEnabled) BOOL   pagingEnabled;  //是否分頁
@property(nonatomic,getter=isScrollEnabled) BOOL   scrollEnabled;  //是否能滾動 
@property(nonatomic) BOOL scrollsToTop;//是否允許點擊狀態(tài)欄讓距離狀態(tài)欄最近的scrollView滑動到頂部,默認為YES

@property(nonatomic) BOOL   bounces;            //是否有觸底反彈效果,默認為YES
@property(nonatomic) BOOL  alwaysBounceVertical;
@property(nonatomic) BOOL  alwaysBounceHorizontal;            
@property(nonatomic) CGFloat  decelerationRate; //設置減速率

// 將指定區(qū)域滑動到剛好可見處(即距離邊緣最近處)
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated;
@property(nonatomic,readonly,getter=isTracking) BOOL  tracking;    //點擊中
@property(nonatomic,readonly,getter=isDragging) BOOL  dragging;    //拖拽中
@property(nonatomic,readonly,getter=isDecelerating) BOOL decelerating;    //減速滾動中 
@property(nonatomic) BOOL delaysContentTouches;    // 是否延遲事件傳遞,默認為YES
@property(nonatomic) BOOL canCancelContentTouches;// 是否可以取消內(nèi)容視圖被觸摸,默認為YES

指示器相關

@property(nonatomic) BOOL  showsHorizontalScrollIndicator;  // 是否顯示水平滾動條
@property(nonatomic) BOOL  showsVerticalScrollIndicator;    // 是否顯示垂直滾動條
@property(nonatomic)  UIEdgeInsets   scrollIndicatorInsets; //為指示器周圍增加可滾動區(qū)域     
@property(nonatomic) UIScrollViewIndicatorStyle  indicatorStyle; //指示器樣式 

// 閃一下指示器
- (void)flashScrollIndicators;

縮放相關

@property(nonatomic) CGFloat minimumZoomScale;     // 能縮最小的倍數(shù)
@property(nonatomic) CGFloat maximumZoomScale;     // 能放最大的倍數(shù)
@property(nonatomic) CGFloat zoomScale;            //縮放比例
@property(nonatomic,readonly,getter=isZooming) BOOL zooming;  // 縮放中
@property(nonatomic,readonly,getter=isZoomBouncing) BOOL zoomBouncing; // 是否允許觸底反彈,默認為YES

// 設置縮放比例
- (void)setZoomScale:(CGFloat)scale animated:(BOOL)animated;

// 縮放到指定區(qū)域
- (void)zoomToRect:(CGRect)rect animated:(BOOL)animated;

鍵盤相關

@property(nonatomic) UIScrollViewKeyboardDismissMode  keyboardDismissMode;  //隱藏鍵盤模式
/*
    UIScrollViewKeyboardDismissModeNone,        //不隱藏鍵盤
    UIScrollViewKeyboardDismissModeOnDrag,      //當拖拽scrollView時隱藏鍵盤
    UIScrollViewKeyboardDismissModeInteractive, //當拖拽鍵盤上方時隱藏鍵盤
*/

3、UIScrollView代理

滑動相關代理

// 當scrollView的contentOffset發(fā)生變化時調(diào)用
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

// 將要開始拖拽時調(diào)用(注: 該方法可能需要先滑動一段時間或距離才會被調(diào)用)
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;

// 當用戶停止拖拽時調(diào)用(注: 應用程序可以通過修改targetContentOffset參數(shù)的值來調(diào)整內(nèi)容視圖content view停止的位置)
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset;

// 當用戶停止拖拽時調(diào)用(注: 如果內(nèi)容視圖content view在停止拖拽后繼續(xù)移動,則decelerate參數(shù)為YES)
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

// 將要開始減速時調(diào)用(僅當停止拖拽后繼續(xù)移動時才會被調(diào)用)
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;

// 已經(jīng)結束減速時調(diào)用(僅當停止拖拽后繼續(xù)移動時才會被調(diào)用)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;

// 返回是否允許點擊狀態(tài)欄讓scrollView滑動到頂部,如果未實現(xiàn)該方法,則默認為YES(僅當scrollsToTop屬性為YES時才調(diào)用)
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;

// 當scrollView已經(jīng)滑動到頂部時調(diào)用(僅當點擊狀態(tài)欄讓scrollView滑動到頂部才調(diào)用)
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;

// 當-setContentOffset:animated:/-scrollRectVisible:animated:方法動畫結束時調(diào)用(僅當animated設置為YES時才調(diào)用)
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;

縮放相關代理

// 當縮放比例更改時調(diào)用
- (void)scrollViewDidZoom:(UIScrollView *)scrollView;

// 參與縮放的子視圖
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;

// 將要開始縮放時調(diào)用
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view;

// 已經(jīng)結束縮放時調(diào)用
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale;

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容