Как отслеживать клики за пределами пользовательского представления
2 ответа
Решение
Вы можете использовать touchesBegan
отследить это так:
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
UITouch *touch= [touches anyObject];
if ([touch view] == self.view)
{
// do stuff
}
}
Для быстрого:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
if let touch = touches.first {
if touch.view == self.view {
// do stuff
}
}
super.touchesBegan(touches, withEvent:event)
}
Вы можете добавить UIView
в пользовательском представлении, охватывающем весь экран, присвойте ему альфа 0,1 или около того. Затем вы можете добавить tapGestureRecognizer
чтобы поймать все прикосновения за пределами пользовательского представления.
Просто не забудьте также скрыть наложение, когда вы скрываете пользовательский вид, чтобы касания не блокировались впоследствии.