Touchesbegan not detecting what is being touched

前端 未结 2 1988
情歌与酒
情歌与酒 2021-01-14 22:09

I\'m building a rotating banner using a NSTimer to keep track of the current image with the image being animated from 5 different images. I have a touchesBegan set up to kee

相关标签:
2条回答
  • 2021-01-14 22:37

    First of all you have to set userInteractionEnabled to YES in your viewDidLoad method like below:

    [myImageView setUserInteractionEnabled:YES];
    

    Note that for the myImageView, checking User Interaction Enabled via Identity Inspector didn't work for me.

    Then change

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

    to

    UITouch *touch = [touches anyObject];
    

    so that the touchesBegan method looks like below:

    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        UITouch *touch = [touches anyObject];
        if ([touch view] == myImageView) {
           // place any code here when myImageView is touched
        }
     }
    
    0 讨论(0)
  • 2021-01-14 22:42

    Not sure what would cause that but have you tried using a UIGestureRecognizer? Try something like the code below and see if the method gets called.

      //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");
      }
    
    0 讨论(0)
提交回复
热议问题