![](/img/trans.png)
[英]UITapGestureRecognizer for UIView in Scroll View doesn't work
[英]UITapGestureRecognizer on custom table view cell doesn't work
我正在尝试为自定义表格视图单元格中的图像添加手势识别器。 出于某种原因,我似乎无法让它工作。 这是我的代码
override func awakeFromNib() {
super.awakeFromNib()
heartImage.userInteractionEnabled = true
let gesture = UITapGestureRecognizer(target: self, action:Selector("onHeartTap"))
gesture.delegate = self
heartImage.addGestureRecognizer(gesture)
}
func onHeartTap(sender: UITapGestureRecognizer)
print("TAPPED")
}
函数awakeFromNib() 被正确调用,但在点击图像时onHeartTap() 永远不会被调用。 我究竟做错了什么?
为图像启用了用户交互,但未为单元格启用。
为故事板中的单元启用它,一切正常。 谢谢大家的帮助!
在您的选择器名称“onHeartTap”中缺少“:”
只需更换
let gesture = UITapGestureRecognizer(target: self, action:Selector("onHeartTap"))
和
let gesture = UITapGestureRecognizer(target: self, action:Selector("onHeartTap:"))
还有你在awakeFromNib中这样做的任何具体原因?? 您也可以在 viewWillAppear 上执行此操作。
我有一个类似的问题, UITableViewCell 子类中的 UIImageView 不会触发我设置的手势识别器。
func viewDidLoad() {
imageView.addGestureRecognizer(UIGestureRecognizer(target: self, action: #selector(imageViewTapped(sender:))))
imageView.isUserInteractionEnabled = true
}
问题是没有为 UITableViewCell 调用viewDidLoad()
:
我可以在 UITableviewCell 中使用 viewDidLoad 方法吗?
改为在awakeFromNib()
设置手势识别器:
override func awakeFromNib() {
imageView.addGestureRecognizer(UIGestureRecognizer(target: self, action: #selector(imageViewTapped(sender:))))
imageView.isUserInteractionEnabled = true
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.