![](/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.