我想添加一个点击手势到一个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