-3

I have multiple Views inside a ViewController and I want to know when a view is tapped on and I'm not sure how to go about it

Byte Me
  • 27
  • 1
  • 7

1 Answers1

0

In order to check whether certain view inside another view was touched you can use hitTest.

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event;

In your custom implementation of touchesBegan check every touch in touches set. The point for hitTest method can be obtained using

- (CGPoint)locationInView:(UIView *)view;
method, where the view is your superView (the one that contains other views).

EDIT: Here's a fast custom implementation:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    CGPoint locationPoint = [[touches anyObject] locationInView:self];
    UIView* viewYouWishToObtain = [self hitTest:locationPoint withEvent:event];
}

I hope this was helpful, Paul

Sources : Detect if certain UIView was touched amongst other UIViews

Community
  • 1
  • 1
StrawHara
  • 1,301
  • 19
  • 33