UIScrollview是一个很强的的控件,我们接触的相册,首页展示,等等,都会用到scrollview,当然了,在大多时候,很多都是靠delegate里面的方法来实现我们需要的功能,
比如说scrollview的放大缩小实现,要借助
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
简单说一下delegate几个常用的方法在什么时候会调用
1.
- (void)scrollViewDidZoom:(UIScrollView *)scrollView; // any zoom scale changes 任何缩放比例的变化
注意的是:如果不加条件直接执行的话 在缩放scrollview的时候会执行多次 在调用这个方法进行处理的时候 发现容易卡死 所以在这里面执行其他方法的时候要慎重 这个方法不行的话 可以找其他的方法代替或者加判断来执行
2.
- (void)scrollViewDidScroll:(UIScrollView *)scrollView; // any offset changes 任何偏移变动
需要注意的和上面一样
3.
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView; // called when scroll view grinds to a halt 滚动视图时慢慢停下来时执行
4.
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; //停止拖拽的时候执行
根据文字提示可以看出,3 和 4 有些类似,但是我们在拖拽的时候,他的执行顺序应该是,先停止拖拽,然后在慢慢停下来,执行的时间还是有差别的
5.
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView; // return a view that will be scaled. if delegate returns nil, nothing happens 返回一个视图,将被缩放。如果委托返回为空,什么都不会发生