Автоматическое закрытие UIView

Рейтинг: 2Ответов: 1Опубликовано: 10.02.2011

Как сделать, чтобы при клике за пределами UIView, эта вьюшка скрывалась (неважно removeFromSuperview или setFrame). Проблема в том, что UIView не может отлавливать событие click-outside.

Ответы

▲ 3Принят

Отлавливай клик на том, что за пределами UIView, например создай UIButton с кастомным стилем (она будет прозрачная) и подложи ее под твой UIView, ну а для этого баттона определи обработку click-inside, по которому и скрывай UIView...

Upd: Вариант второй.

UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self.view 
action:@selector(removeFromSuperview)];
gestureRecognizer.numberOfTapsRequired = 1;
[self.superview addGestureRecognizer:gestureRecognizer];
[gestureRecognizer release];