我在围绕手势识别器缠绕我的大脑时遇到了麻烦。我想定位一个子视图。这是一个与主视图一起使用的示例:
let gesture = UITapGestureRecognizer(target: hex_pin_view!, action: #selector(openEmojis(sender:)))
gesture.delegate = self
mapView.addGestureRecognizer(gesture)
这是子视图目标,这个剂量不起作用,是我正在寻找的:
let gesture = UITapGestureRecognizer(target: hex_pin_view!.add_emoji_img_view, action: #selector(openEmojis(sender:)))
gesture.delegate = self
mapView.addGestureRecognizer(gesture)
我收到了崩溃错误:
unrecognized selector sent to instance
选择器是相同的,我不明白。
任何人都知道我可能做错了什么?
答案 0 :(得分:0)
手势识别器的let gesture = UITapGestureRecognizer(target: self, action: #selector(openEmojis(sender:)))
gesture.delegate = self
mapView.addGestureRecognizer(gesture)
是将从手势识别器接收消息的对象。或者简单地说,包含将处理消息的函数的对象。
很多时候目标:设置为自己。
openEmojis
是处理消息的函数/方法。
mapView.addGestureRecognizer(gesture)
那么,currrent类/对象应该有一个名为add_emoji_img_view.addGestureRecognizer(gesture)
的方法。手势将添加到mapView
{{1}}
因此,当点击地图时,应调用您的函数。
如果您希望在点击子视图时触发手势。而是将手势识别器添加到子视图中:
{{1}}