UIScrollViewDelegate的代理函数说明

来源:互联网 发布:淘宝冈本旗舰店 编辑:程序博客网 时间:2024/04/30 11:37

今天在开发LemonKit4Android的时候完全仿照iOS的UIScrollView写了一个Android的版本,名叫LKScrollView(详见LemonKit4Android: https://github.com/1em0nsOft/LemonKit4Android),同时也完全写了一套Delegate,写的同时对iOS的UIScrollViewDelegate中所有的函数功能过了一遍,特此记录一下。

  • 只要ScrollView的内容偏移被改变,就会被回调
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;  
  • 只要ScrollView在被缩放的时候就会被回调(iOS>=3.2时候可用)
- (void)scrollViewDidZoom:(UIScrollView *)scrollView NS_AVAILABLE_IOS(3_2); 
  • 手指触摸ScrollView将要滑动时候被回调
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;
  • 手指即将停止触摸的时候被回调(iOS>=5时候可用)
  • 当pagingEnabled属性为YES时,不调用,该方法
  • @param velocity 当前scrollView滚动的速度
  • @param targetContentOffset 照此速度移动的话的最终点
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset NS_AVAILABLE_IOS(5_0);
  • 当手指离开ScrollView时回调该方法
  • @param decelerate 手指离开后,视图是否还将继续向前滚动,即如果继续滚动,那么decelerate=YES
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate;
  • 当手指离开ScrollView,滚动开始减速的时候调用
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView; 
  • 当手指离开ScrollView,滚动减速到停止后调用
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView; 
  • 当ScrollView执行完动画之后被调用,通常指的是执行下面两个函数后被调用
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated;- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated;
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView; 
  • 设置要缩放的 ScrollView 上面的哪一个子视图 , 只能是子视图 , 不能是ScrollView 本身
- (nullable UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
  • 当开始缩放的时候被回调(iOS>=3.2时候可用)
  • @param view 缩放的子视图
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view NS_AVAILABLE_IOS(3_2); 
  • 当已经缩放的时候回调该方法,缩放在预设最小值和最大值中间的时候才可用(在回弹动画之后被调用)
  • @param view 缩放的子视图
  • @param scale 缩放的比例
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(nullable UIView *)view atScale:(CGFloat)scale; 
  • 当要滚到视图顶部的时候回调此函数询问用户是否能回到顶部,该方法当设置scrollView.scrollsToTop=YES的时候才会回调
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;
  • 当已经滚动到顶部之后回调的函数(动画执行完毕)
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView;

如果哪路大神觉得有问题还请指教,因为以上内容也只是我根据平时的经验和理解总结的


LemonKit移动端全平台极速开发框架开源地址如下:

版本名称 Github地址 Android版本 https://github.com/1em0nsOft/LemonKit4Android iOS ObjC版本 https://github.com/1em0nsOft/LemonKit4iOS iOS Swift版本 https://github.com/1em0nsOft/LemonKit4iOS-Swift
0 0
原创粉丝点击