iOS之[UIScrollView屬性、代理詳解]

1.屬性

屬性

2.UIScrollViewDelegate

滾動+縮放動畫

//scrollView滾動時,就調用該方法。任何offset值改變都調用該方法。即滾動過程當中,調用屢次 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    NSLog(@"%f", scrollView.contentOffset.x);            
}
'
//縮放時調用,調用屢次
- (void)scrollViewDidZoom:(UIScrollView *)scrollView{
    NSLog(@"%f", scrollView.zoomScale);
}

======================================================================代理

滑動code

//開始拖動scrollView的時候被調用
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
'
//在didEndDragging 前被調用,
// velocity == CGPointZero(結束拖動時兩個方向都沒有速度),didEndDragging 中的decelerate爲 NO,即沒有減速過程,不會調用減速代理方法
//targetContentOffset:減速運動目的地
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView 
                     withVelocity:(CGPoint)velocity 
              targetContentOffset:(inout CGPoint *)targetContentOffset
'
//滑動結束時
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;

======================================================================對象

減速(decelerating)動畫ci

滑動結束後會有減速過程。注:在 didEndDragging 以後,若是有減速過程,scrollView的 dragging屬性(滑動中)並不會當即置爲 NO,而是要等到減速結束以後。get

特殊狀況:當一次減速動畫還沒有結束的時候再次滑動,scrollViewDidEndDecelerating: 不會被調用。新的 dragging 若是有加速度,那麼 willBeginDecelerating 會再一次被調用it

//減速動畫開始前
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;
'
//減速動畫結束時
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;

滑動動做完了io

//當滾動視圖動畫完成後,調用該方法,若是沒有動畫,那麼該方法將不被調用
// 有效的動畫方法爲:
//    - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
//    - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated 方法
      - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;

======================================================================scroll

縮放方法

//返回將要縮放的UIView對象,執行屢次
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
'
//開始縮放時
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view 
'
//縮放結束後,在minimumZoomScale與maximumZoomScale之間
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale;

======================================================================

點擊狀態欄,滾動到頂部

//指示當用戶點擊狀態欄後,滾動視圖是否可以滾動到頂部
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;
'
//當滾動視圖滾動到最頂端後,執行該方法
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;
相關文章
相關標籤/搜索