PanResponder即react-native的手势操作系统,这里记录一下生命周期相关事件
单点事件
onStartShouldSetResponderCapture: 如果父视图想要阻止子视图响应 touch start
事件,它就应该设置这个方法并返回 true
。
onStartShouldSetResponder: 在用户开始触摸的时候(手指刚刚接触屏幕的瞬间),返回是否愿意成为响应者
onPanResponderGrant: 这个视图开始响应触摸事件。此时需要高亮告诉用户正在响应。
onPanResponderStart: 触摸事件正式被监视
onPanResponderEnd: 触摸事件结束
onPanResponderRelease: 在整个触摸事件结束时调用这个函数。
移动事件
onMoveShouldSetResponderCapture: 如果父视图想要阻止子视图响应 touch move
事件时,它就应该设置这个方法并返回 true
onMoveShouldSetPanResponder: 这个视图想要认领这个 touch move
事件吗?每当有 touch move
事件在这个视图中发生,并且这个视图没有被设置为这个 touch move
的响应时,这个函数就会被调用。
onPanResponderGrant: 监视器发出通知开始工作
onPanResponderMove: 当用户正在屏幕上移动手指时调用这个函数。
异常事件
onPanResponderReject: 有一个响应器正处于活跃状态,并且不会向另一个要求响应这个事件的视图释放这个事件。
onPanResponderTerminationRequest: 其他某个视图想要成为事件的响应者,并要求这个视图放弃对事件的响应时,就会调用这个函数。如果允许释放响应,就返回 true
。
onPanResponderTermination: 响应被从这个视图上劫走了。可能是在调用了 onResponderTerminationRequest
之后,被另一个视图劫走了(见 onresponderterminationrequest
), 也可能是由于 OS 无条件终止了响应(比如说被 iOS 上的控制中心/消息中心)