https://www.jianshu.com/p/cb0314b72883?nomobile=yes
https://juejin.im/post/5d396ef7518825453b605afa

感觉上面掘金里面那篇文章说的更准确。
从自己测试的demo的输出效果看,gesture拥有更高的优先级,但是touchmessage可以说是同时发给gesture和我们hittest中得到的view的,简书那一篇的表述容易让人误以为是串联关系,当我们的touchmessage结束时,如果gesture认为这条消息需要我来处理,那么他就会向hittest view发送cancel消息,由自己来处理这个touch,如果在touchmessage结束时,hittest_view并没有收到cancel,那么hittestview会向下继续执行。
笔记:
1、hittest得到的hittestview会保存在touch对象中,当gesture响应touch时,会向所有其它的响应者发送cancel消息
2、如果hittestview不响应uitouch的四个方法,touchbegan等,响应会沿着响应者链向上传递
网友评论