tap gesture recognizer - which object was tapped?
ios, objective-c, uigesturerecognizer, uitapgesturerecognizer
Solution
Define your target selector(`highlightLetter:`) with argument as
UITapGestureRecognizer *letterTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(highlightLetter:)];
Then you can get view by
- (void)highlightLetter:(UITapGestureRecognizer*)sender {
UIView *view = sender.view;
NSLog(@"%d", view.tag);//By tag, you can find out where you had tapped.
}
Problem
I'm new to gesture recognizers so maybe this question sounds silly: I'm assigning tap gesture recognizers to a bunch of UIViews. In the method is it possible to find out which of them was tapped somehow or do I need to find it out using the point that was tapped on screen? ``` for (NSUInteger i=0; i<42; i++) { float xMultiplier=(i)%6; float yMultiplier= (i)/6; float xPos=xMultiplier*imageWidth; float yPos=1+UA_TOP_WHITE+UA_TOP_BAR_HEIGHT+yMultiplier*imageHeight; UIView *greyRect=[[UIView alloc]initWithFrame:CGRectMake(xPos, yPos, imageWidth, imageHeight)]; [greyRect setBackgroundColor:UA_NAV_CTRL_COLOR]; greyRect.layer.borderColor=[UA_NAV_BAR_COLOR CGColor]; greyRect.layer.borderWidth=1.0f; greyRect.userInteractionEnabled=YES; [greyGridArray addObject:greyRect]; [self.view addSubview:greyRect]; NSLog(@"greyGrid: %i: %@", i, greyRect); //make them touchable UITapGestureRecognizer *letterTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(highlightLetter)]; letterTapRecognizer.numberOfTapsRequired = 1; [greyRect addGestureRecognizer:letterTapRecognizer]; } ```