Touchesbegan没有检测到被触摸的内容

时间:2011-10-18 13:30:12

标签: iphone ios touch imageview touchesbegan

我正在使用NSTimer构建一个旋转横幅来跟踪当前图像,图像是从5个不同的图像中生成的。我有一个touchesBegan设置,如果有人点击它,继续处理横幅上的触摸事件。我的概念验证有效,但是将其转移到另一个项目中,它会中断。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [[event allTouches] anyObject];
if ([touch view] == myImageView){
    [self getImage];
    NSLog(@"%@", currentImage);
}
}

现在,当我将断点放入我的项目中时,它可以很好地抓住触摸,但是当它到达时      if([触摸视图] == myImageView) 它没有检测到正在触摸图像视图。

2 个答案:

答案 0 :(得分:7)

不确定是什么原因导致您尝试使用UIGestureRecognizer?尝试类似下面的代码,看看是否调用该方法。

  //Add Gesture Recognizer
  UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self    action:@selector(imageSelected)];
  tapped.numberOfTapsRequired = 1;
  [theImageView addGestureRecognizer:tapped];

  //Memory Cleanup
  [tapped release];

 -(void)imageSelected
  {
    NSLog(@"Selected an Image");
  }

答案 1 :(得分:3)

首先,您必须在viewDidLoad方法中将userInteractionEnabled设置为YES,如下所示:

[myImageView setUserInteractionEnabled:YES];

请注意,对于myImageView,通过Identity Inspector检查用户交互是否对我不起作用。

然后改变

UITouch *touch = [[event allTouches] anyObject];

UITouch *touch = [touches anyObject];

以便touchesBegan方法如下所示:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    if ([touch view] == myImageView) {
       // place any code here when myImageView is touched
    }
 }
相关问题