通过UIGestureRecognizer的方法[locationOfTouch:inView:]循环使用UITOUGE时,似乎不能保证UITouches出现的顺序.特别:
for (int i = 0; i < [recognizer numberOfTouches]; i++) { CGPoint point = [recognizer locationOfTouch:i inView:self]; NSLog(@"[%d]: (%.1f,%.1f)",i,point.x,point.y); }
人们会认为,索引为0的点将是第一个UITouch,或者是第一个被释放的点,但是经常是2次触发的顺序被混合在一起.有谁知道如何测试这些事件的顺序?不幸的是,无法访问UITouch对象本身(带有时间戳).
此外,文档中不保证来自-locationOfTouch:inView:将始终保持可靠的顺序.任何人都可以确认还是否认?
解决方法
您可以尝试设置识别器的委托属性并实现-equureRecognizer:shouldReceiveTouch :.它应该顺序调用,然后你可以按住触摸.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。