当前位置:  开发笔记 > IOS > 正文

如何取消一系列UITouch事件?

如何解决《如何取消一系列UITouch事件?》经验,为你挑选了1个好方法。

我有一个UIImage视图响应触摸事件.touchesMoved:如果触摸超出某些范围,我想取消触摸序列,即进一步调用.我怎样才能做到这一点?

我知道在touchesMoved:我可以检查触摸物体的坐标并忽略它,但我不知道的是如何完全取消序列.我没有看到Apple Developer UIResponderReference中记录的任何方法,我可以调用它来取消触摸序列.



1> Michael Fey..:

这个解决方案可能有点麻烦,但您可以实现并手动调用

- (void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

我将这个解决方案松散地放在我对Apple的iPhone示例代码网站上的MoveMe示例应用程序进行的一些调整上,其中我将touchesMoved方法修改为如下所示:

- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
     UITouch *touch = [touches anyObject];
     if ([touch view] == placardView)
         CGPoint location = [touch locationInView:self];
         placardView.center = location;
         // I added the following line:
         [self touchesCancelled:touches withEvent:event];
         return;
}

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有