Woher weiß ich, in welcher der untergeordneten Ansichten ein Ereignis aufgetreten ist, wenn UIGestureRecognizers verwendet wurden?
Laut Dokumentation:
Ein Gestenerkenner bearbeitet Berührungen, die auf eine bestimmte Ansicht und alle Unteransichten dieser Ansicht getestet wurden.
Soweit ich sehen kann, ist die Eigenschaft 'view'
Die Ansicht, an die der Gestenerkenner angehängt ist.
Dies ist die übergeordnete Ansicht.
objective-c
ipad
LK.
quelle
quelle
hitTest:withEvent:
es so weit wie möglich in den Baum der Kinder geht. Wenn Unteransichten oder Unteransichten von Unteransichten vorhanden sind, die Sie ignorieren möchten, können SieuserInteractionEnabled = NO
diese Ansichten festlegen ..superview
iterativ, bis Sie das Original erreichenview
.Für zukünftige Benutzer ... Ich habe jetzt eine bessere Option, wenn die Welt obj-c nicht mehr verwendet ...
[sender view]
benutze es so:
UITapGestureRecognizer * objTapGesture = [self createTapGestureOnView:myTextField]; [objTapGesture addTarget:self action:@selector(displayPickerView:)];
// füge diese Methoden hinzu
-(void)displayPickerView:(UITapGestureRecognizer*)sender { UITextField *textField = (UITextField*)[sender view]; NSLog(@"tag= %ld", (long)textField.tag); } -(UITapGestureRecognizer*)createTapGestureOnView:(UIView *)view { view.userInteractionEnabled = YES; UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc]init]; tapGesture.numberOfTapsRequired = 1; tapGesture.numberOfTouchesRequired = 1; [view addGestureRecognizer:tapGesture]; return tapGesture; }
quelle