我不知道爲什麼,但是我的UITapGestureRecognizer沒有正確觸發。事實上,它根本不是射擊。我試圖獲得一個函數在圖像的水龍頭上運行。Swift 3:UITapGestureRecognizer沒有觸發
信息有關的設置:
- 不使用故事板,加載一切編程
- ,我就裝這個也該視圖上有一個UICollectionView
確定這樣的代碼:
UIImageView聲明如下:
let backButtonIcon: UIImageView = {
let bbi = UIImageView()
bbi.image = UIImage(named: "backIcon")
bbi.translatesAutoresizingMaskIntoConstraints = false
bbi.layer.zPosition = 2
return bbi
}()
我再補充說,認爲:
view.addSubview(backButtonIcon)
到水龍頭功能添加到UIImageView的我使用:
let tapBackButton = UITapGestureRecognizer(target: self, action: #selector(backButtonPressed))
backButtonIcon.isUserInteractionEnabled = true
backButtonIcon.addGestureRecognizer(tapBackButton)
,最後,這裏是我想的功能運行,只是簡單的打印的時刻:
func backButtonPressed(sender: UITapGestureRecognizer) {
print("Go Back Pressed")
}
更新:
我已經嘗試添加:
bbi.isUserInteractionEnabled = true
也:
backButtonIcon.isUserInteractionEnabled = true
更新2:
我創造了另一個空白視圖,並且使用的代碼,正是因爲它是在這裏,它的工作。
難道這與UICollectionView有關嗎?
我使UICollectionView zPosition -1和UIImageView zPosition在1,但那也不起作用。
選擇器看起來不正確,它應該至少與無法識別的選擇器崩潰。 「backButtonIcon」的超級視圖究竟是什麼? – Larme
@Larme沒有崩潰。爲什麼它不正確? – JamesG
當我沒有爲添加到的視圖維護引用(即變量)時,我遇到了gestureRecognizer無法正常工作的問題。這是我的SO帖子:http://stackoverflow.com/questions/40144874/frontmost-uiview-with-tapgesturerecognizer-not-receiving-touches/40157112#40157112 – toddg