У меня проблемы с получением UITapGestureRecognizer для регистрации касаний пользователя. showMenu() функция должна отображать частично прозрачный blackView к пользователю, и я реализовал жест распознаватель, так что, когда пользователь нажимает на blackView, уволить() является и делает вид затухающим.Swift: Gesture Recognizer не регистрирует краны
В моей консоли XCode я не получаю сообщение печати «отклонено», как указано в коде.
Заранее благодарен!
func showMenu(){
print("show")
if let window = UIApplication.sharedApplication().keyWindow{
blackView.backgroundColor = UIColor(white: 0, alpha: 0.5)
blackView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(dismiss)))
window.addSubview(blackView)
blackView.frame = window.frame
blackView.alpha = 0
//Added this line
blackView.userInteractionEnabled = true
UIView.animateWithDuration(0.5){
self.blackView.alpha = 1
}
}
}
func dismiss(){
print("dismiss")
UIView.animateWithDuration(0.5){
self.blackView.alpha = 0
}
}
EDIT: Я проверил, чтобы увидеть, если какие-либо взгляды на вершине угон краны с помощью инструмента Просмотр иерархии отладки, но не кажется, что будет что-нибудь выше blackView, я также явно задано blackView, чтобы разрешить взаимодействие с пользователем.
EDIT: Снимок экрана интерфейса отладки представления иерархии.
Вы пытались установить numberOfTapsRequired для 1? – Scriptable
@Scriptable, просто сделал. К сожалению, я получаю те же результаты. – BlackDeveraux
Хм, хорошо, код выглядит нормально для меня, не могли бы вы попытаться поднять subview на передний план? 'self.view.bringSubviewToFront (blackView)' после добавления subView, посмотрите, помогает ли это. Я не могу проверить его на минуту, просто придумываю идеи – Scriptable