UIScrollView进行滚动时的代理消息序列

UIScrollView进行滚动时的代理消息序列

手指触碰屏幕--->

  • 序列开始
  • tracking= YES;

如果手指静止不动--->

  • 内容视图开始处理点击事件
  • 序列结束---> OUT

如果手指开始移动--->

  • scroll view尝试取消被正在被内容视图处理的点击事件(其实是UIWindow发出取消指令)
  • dragging = YES;
  • 代理不断收到scrollViewWillBeginDragging:消息

如果是滑动手势--->

  • 手指离开屏幕
  • tracking = NO;
  • 代理收到scrollViewDidEndDragging:willDecelerate:消息,减速参数为YES
  • decelerating = YES;

如果是拖动手势--->

  • 手指离开屏幕,停止拖动
  • tracking = NO;
  • 代理收到scrollViewDidEndDragging:willDecelerate:消息,减速参数为NO

如果Bounces属性为YES--->

  • 代理收到scrollViewDidEndDragging:willDecelerate:消息,减速参数为YES

如果scrollViewDidEndDragging:willDecelerate:的减速参数为YES--->

  • 代理收到scrollViewWillBeginDecelerating:消息
  • 代理不断收到scrollViewWillBeginDragging:消息
  • tracking = NO;
  • dragging = NO;
  • decelerating = YES;

减速至静止--->

  • 代理收到scrollViewDidEndDecelerating:消息
  • decelerating = NO;
  • 序列结束---> OUT
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容