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;
相关文章
相关标签/搜索