2016-03-02 1 views
1

Я сделал подкласс UIView.Then, я добавил UITapGestureRecognizer, но когда я нажимаю на представление, он не отвечает на него.О UITapGestrueRecognizer в Swift

Код:

let tapGesture = UITapGestureRecognizer(target: self, action: "singleTapHandler:") 

    self.maskView!.addGestureRecognizer(tapGesture) 

селектор:

func singleTapHandler(recognizer: UITapGestureRecognizer) { 

    print("xxx") 

    dismiss() 
    } 
+0

Проверьте 3D вид (Debug вид иерархии) и посмотреть, если вид находится в передней или любой другой взгляд поверх него ...! –

ответ

1

Убедитесь, что вы включили интерактивности:

self.maskView!.userInteractionEnabled = true 
+0

thx.I попробовал это раньше. Но никакого эффекта –

-1

Проверить, если вы добавили UIGestureRecognizerDelegate на ваш взгляд, и использовать его tapGesture.delegate = self

Ваш tapGesture должен быть как let tapGesture = UITapGestureRecognizer(target: self, action: "singleTapHandler"), нет необходимости :

Тогда ваша функция может

func singleTapHandler(){ 
    //action 
} 

Наконец, убедитесь, что вы нажмете на взгляд вы добавили водопроводную жест.

0

Убедитесь, что maskView на верхней части представления, и кадр не составляет CGRectZero