iOS手势的传递问题

时间:2023-03-10 00:36:30
iOS手势的传递问题

昨天在做一个页面的时候,我先在一个uiview上面画了一个字母的索引表,之后我通过touchbegan来表示 点击到字母的效果,主要效果是跳出一个界面来显示你按到的字母是什么。 之后我用touchmoved来表示当我移动的时候读出对应的点击的字母,刚开始 我是单独写的一个控件。效果可以实现,当我内嵌到app里的时候出现了问题,因为我在页面上增加了滑动手势效果,主要是做一个屏幕的切换,因此我碰到的问题就是手势被截获了,到不了touchmoved,之后我查询后发现了手势的一个传递。

iOS手势的传递问题

从这里我们可以明显的看到当手势和touchmoved同时加在uiview上面的时候将会优先的识别手势。所以,我将原来的touchmoved换成了UIPanGestureRecognizer,缓慢滑动手势。前面的问题也就解决了。但是要注意的是,滑动手势的 识别是需要时间的,当手势在被识别出来以前,touchbegan 依旧会被调用。如果你希望在你的手势被识别的过程中touchbegan不被调用,那么你需要调用delaysTouchesBegan。
iOS手势的传递问题

这是我最后完成的效果图。