我想添加一個點擊手勢到一個UIView,但手勢沒有得到承認。點擊手勢事件不工作在UIView
「iconBadgeView」是一個UIView,它帶有一個在參數中傳遞的已定義大小的圖像。
lazy var cardioVascularIcon : IconBadgeView! = {
let iconBadgeView = IconBadgeView(frame: CGRect(x: 0, y: 0, width: 95, height: 95), data:["big":"db_history"])
let tapEvent = UITapGestureRecognizer(target: self, action: #selector(loadNewView(sender:)))
tapEvent.numberOfTapsRequired = 1
iconBadgeView.translatesAutoresizingMaskIntoConstraints = false
iconBadgeView.isUserInteractionEnabled = true
iconBadgeView.addGestureRecognizer(tapEvent)
}()
有連接到同一類中的委託和功能實現如下:
func loadNewView(sender: UITapGestureRecognizer) {
print("Tapped")
}
功能loadNewView是沒有得到調用。我不確定代碼中的錯誤。如果有人能幫忙,請幫忙。
我加入iconBadgeView爲低於上海華:
override init(frame: CGRect) {
super.init(frame: CGRect.zero)
addSubview(cardioVascularIcon)
cardioVascularIcon.pinToSuperview([.Top])
cardioVascularIcon.pinToSuperview([.Left], constant: 92)
cardioVascularIcon.pinToSuperview([.Right], constant: 92)
}
'讓tapEvent = UITapGestureRecognizer(目標:自我,動作:#selector(loadNewView(發件人:))) tapEvent.addTarget(iconBadgeView,動作:#selector(loadNewView(發件人:))) '你爲什麼要重複你自己在這裏我的朋友哈哈。如果你要創建一個帶有'default constructor'意味着'UITapGestureRecognizer()'的手勢,那麼你將需要爲你的選擇器提供'addTarget'方法,但是由於你使用了需要選擇器和目標的自定義構造器,所以需要有第二行代碼:) – Lamar
我已經嘗試刪除重複的行,但它沒有幫助 – user2122178
你有沒有得到任何錯誤/問題?僅僅因爲好奇心,你把'iconBadgeView'添加到你的superView中了嗎?也因爲你禁用'translatesAutoresizingMaskIntoConstraints'確保你將這些約束添加到它,如果現在你可能認爲你在屏幕上查看,它不是:) – Lamar