0
我有一个很大的问题,因为最近2天。我正在使用支持多点触控的视图。我的UIViewController有8-10 imageview。我想单独检测每个视图的触摸,但一次检测多个视图。在所有图像视图上检测到触摸,但问题在这里 -第二个UITouch事件触发器第一个UITouch事件为什么?
假设我点击图像视图并按住此图像视图,然后点击另一个图像视图,第二个图像视图被检测到触摸成功,但它也触发先前触摸并按住的第一个图像视图。但我不想要它。所以请任何人帮助我。代码级别的帮助表示赞赏。
注意:我的UIViewController也实现了用于滑动目的的TouchesMoved方法。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
for(UITouch *touch in event.allTouches) {
if(CGRectContainsPoint([imView1 frame], [touch locationInView:self.view])){
NSLog(@"imView 1 touched");
}
if(CGRectContainsPoint([imView2 frame], [touch locationInView:self.view])){
NSLog(@"imView 2 touched");
}
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
for(UITouch *touch in event.allTouches) {
if(CGRectContainsPoint([imView1 frame], [touch locationInView:self.view])){
NSLog(@"imView 1 touch moved");
}
if(CGRectContainsPoint([imView2 frame], [touch locationInView:self.view])){
NSLog(@"imView 2 touch moved");
}
}
}
感谢您的快速反应。你能解释一下吗?它将如何工作? – user413866 2010-08-07 16:15:38
而不是使用UIImageView,创建一个新的NSObject和子类UIImageView,使其看起来像 @interface MyImageView:UIImageView {} @ end ,并且在实现(.m文件)中,您将拥有@implementation,然后触摸代码。在子类中,你可以做任何你需要做的事情,如果你需要调用父类的东西,那么你可以做到这一点。发送触摸到父母,你会做类似 [self.nextResponder touchesMoved:touches withEvent:event]; – AtomRiot 2010-08-07 17:29:39
感谢您的建议。如果你给我一个源代码示例,那么它会保存我的2天。请给我一个示例项目,它有超过2个imageview,并分别检测每个图像视图上的滑动,并解决了这个问题。再次感谢您的回复。 – user413866 2010-08-09 17:08:34