UITapGestureRecognizer Распознает нажатия на главном экране (не вводы или кнопки) - PullRequest
1 голос
/ 25 октября 2011

Я хотел бы получать уведомления, когда пользователь щелкает любую часть фона моего UIView; в основном, если пользователь щелкает вне любого элемента управления, который находится на моем UIView (таблицы, текстовые поля, кнопки и т. д.).

Как мне это сделать? Я пытался сделать это:

if ([touch.view isKindOf:[UIView class]]) {
    do something....
}

Но, очевидно, все элементы управления расширяют UIView ... так что я немного застрял.

Ответы [ 2 ]

2 голосов
/ 25 октября 2011

Вы должны быть в состоянии сделать следующее:

backgroundView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapHit:)] autorelease];
[backgroundView addGestureRecognizer:tap];

-(void) tapHit:(UITapGestureRecognizer *tap) {
  NSLog( @"background tapped" );
}
1 голос
/ 25 октября 2011

Один из способов сделать это - добавить отдельный фоновый вид, который является дочерним по отношению к основному виду вашего ВК. Вы можете просто сделать его прозрачным, чтобы он не мешал вашему стилю. Место позади всех других детских взглядов. Затем зарегистрируйте свою GR в этом представлении.

...