UIScrollView的總結

這裏我主要總結一些UIScrollView的經常使用的一些屬性和代理方法以及不經常使用的markdown

《一》經常使用的屬性ui

  1. contentSize
    默認CGSizeZero,用來設置scrollView的滾動範圍。
    // 設置scrollView的滾動範圍
若是UIScrollView沒法滾動,多是如下緣由:
1>沒有設置contentSize
2>scrollEnabled = NO
3>沒有接收到觸摸事件:userInteractionEnabled = NO
4>沒有取消autolayout功能(要想scrollView滾動,必須取消autolayout)

 scrollView.contentSize = CGSizeMake( self.view.bounds.size.width, self.view.bounds.size.height * 2);

2.contentOffset
默認CGPointZero,用來設置scrollView的滾動偏移量。
// 設置scrollView的滾動偏移量spa

 scrollView.contentOffset = CGPointMake(0, 200); 

3.contentInset
默認 UIEdgeInsetsZero,用來設置scrollView的額外滾動區域。
// 設置scrollView的額外頂部滾動區域:(UIEdgeInsetsMake是逆時針設置,上左下右)代理

 scrollView.contentInset = UIEdgeInsetsMake(100, 0, 0, 0);

4.bounds
默認爲YES,用來設置scrollView的彈簧效果
// 取消scrollView的彈簧效果code

 scrollView.bounces = NO;

5 pagingEnabled
默認爲NO,用來設置scrollView是否開啓分頁.
// 開啓分頁對象

 scrollView.pagingEnabled = YES; 

6.scrollEnabled
默認爲YES,用來設置scrollView是否容許滾動.
// scrollView禁止滾動事件

 scrollView.scrollEnabled = NO;

7.showsHorizontalScrollIndicator
默認爲YES,用來設置scrollView是否顯示水平滾動條.
// 隱藏水平滾動條ci

 scrollView.showsHorizontalScrollIndicator = NO;

8.showsVerticalScrollIndicator
默認爲YES,用來設置scrollView是否顯示垂直滾動條.get

 scrollView.showsVerticalScrollIndicator = NO; 

9.minimumZoomScal
默認1.0,用來設置scrollView最少縮小比例.string

// 設置scrollView容許子視圖的最大放大比例 scrollView.maximumZoomScale = 2;

10.maximumZoomScale
默認1.0,用來設置scrollView最大放大比例.

// 設置scrollView容許子視圖的最小縮放比例 scrollView.minimumZoomScale = 0.8; 

11.delegate
類要遵照UIScrollViewDelegate協議
scrollView.delegate = self; 聲明scrollView的代理是我, 這個方法在UIScrollViewDelegate裏因此咱們要遵照UIScrollViewDelegate這個協議

不少時候,咱們想在UIScrollView正在滾動 或 滾動到某個位置 或者 中止滾動 時作一些特定的操做

當UIScrollView發生一系列的滾動操做時, 會自動通知它的代理(delegate)對象,給它的代理髮送相應的消息,讓代理得知它的滾動狀況
也就是說,要想監聽UIScrollView的滾動過程,就必須先給UIScrollView設置一個代理對象,而後經過代理得知UIScrollView的滾動過程

代理的三個步驟:
           1>設置代理
           2>遵照協議
           3>實現具體的方法

        代理的做用:
        1>監聽的思想:讓一個對象A監聽另外一個對象B的狀態時,用代理
        2>通知的思想:一個對象B的狀態發送了改變,想通知另外一個對象A時,用代理

《二》經常使用的代理方法
1.當scrollView的偏移量一改變就會調用這個方法,即滾動scrollView就會調用。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView; 

2.當scrollView縮放時,就會調用這個方法

- (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2); 

3 即將拖拽的時候調用.

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;

4 即將中止拖拽的時候調用

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0); 

5.中止拖拽的時候調用。

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

6.返回須要縮放哪一個視圖,這個視圖必須是scrollView裏的子視圖。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;

// 列如:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return scrollView.subviews[0];
}

7.scrollView即將開始縮放

- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view NS_AVAILABLE_IOS(3_2); 

8.scrollView完成縮放

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale; 

9.沒有開啓分頁的時候,代理方法調用順序:

scrollViewWillBeginDragging –> scrollViewDidScroll -> scrollViewWillEndDragging -> scrollViewDidEndDragging

10.開啓分頁的時候,代理方法調用順序

scrollViewWillBeginDragging -> scrollViewDidScroll -> scrollViewDidEndDragging ->scrollViewWillBeginDecelerating ->scrollViewDidScroll -> scrollViewDidEndDecelerating

12.directionalLockEnabled
指定控件是否只能在一個方向上滾動

13 decelerationRate
改變scrollerView的減速點位置

14.tracking
監控當前目標是否正在被跟蹤

15.dragging
改變scrollerView的減速點位置

16 delaysContentTouches
控制視圖是否延時調用開始滾動的方法

17 canCancelContentTouches
控制控件是否接觸取消touch的事件

18.indicatorStyle
設定滾動條的樣式

19.decelerating 監控當前目標是否正在減速

相關文章
相關標籤/搜索