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

你可能感兴趣的:(UIScrollView进行滚动时的代理消息序列)