hitTest:withEvent: Not Working
ios, iphone
Solution
UIImageView are, by default, configured to not register user interaction.
From the UIImageView documentation:
New image view objects are configured to disregard user events by default. If you want to handle events in a custom subclass of UIImageView, you must explicitly change the value of the userInteractionEnabled property to YES after initializing the object.
So, right after you initialize your views you should have:
view.userInteractionEnabled = YES;
This will turn the interaction back on and you should be able to register touch events.
Problem
I'm making an app where I have a background view and that has six `UIImageView`'s as subviews. I have a `UITapGestureRecognizer` to see when one of the `UIImageView`s is tapped on and thie handleTap method below is what the gesture recognizer calls. However, when I run this, the `hitTest:withEvent:` always returns the background view even when I tap on one of the imageViews. Does it have something to do with the event when I call hitTest? Thanks ``` - (void) handleTap: (UITapGestureRecognizer *) sender { if (sender.state == UIGestureRecognizerStateEnded) { CGPoint location = [sender locationInView: sender.view]; UIView * viewHit = [sender.view hitTest:location withEvent:NULL]; NSLog(@"%@", [viewHit class]); if (viewHit == sender.view) {} else if ([viewHit isKindOfClass:[UIImageView class]]) { [self imageViewTapped: viewHit]; NSLog(@"ImageViewTapped!"); } } } ```