簡體   English   中英

Swift 3 - 用Tap Gesture的圖像視圖

[英]Swift 3 - Image view with Tap Gesture

我在使用我放在圖像視圖上的輕擊手勢時遇到問題。 圖像當前存儲在資產中作為'ActionLiked',我已將圖像視圖設置為此圖像。 然后將其呈現為基於JSON動態的表視圖(因此,對於放入JSON數組中的每個項目,它都會重復)。 我添加了敲擊手勢,每次點擊它都打印出'TAPPED'然而,它似乎不能一直工作 - 表中有7個項目,點擊手勢將在1上工作,然后在下2個不工作然后在第四個工作並重復該模式

第1項 - 工作項目2 - 沒有工作項目3 - 沒有工作項目4 - 工作項目5 - 沒有工作項目6 - 沒有工作項目7 - 工作

我在調試控制台中收到錯誤無法加載帶有標識符的包中的筆尖引用的“”圖像但是圖像在每個圖像上都正確顯示而沒有識別出敲擊手勢?

以下代碼可以幫助您更好地使用Swift 4。

正如您所說,要檢查tableview單元格上的圖像點擊,請完成以下代碼:

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(ViewController.cellTappedMethod(_:)))

cell.yourImageView.isUserInteractionEnabled = true
cell.yourImageView.tag = indexPath.row
cell.yourImageView.addGestureRecognizer(tapGestureRecognizer)

並將以下方法添加到您的ViewController:

@objc func cellTappedMethod(_ sender:AnyObject){
     print("you tap image number: \(sender.view.tag)")
}

請檢查UIImageView isUserInteractionEnabled是否為true

我最近遇到的問題與您的問題相似。 我有很多圖像,每當用戶點擊它們時,我都希望以相同的方式響應這些圖像。 經過一些實驗,我清楚地知道每個圖像都必須有自己的UITapGestureRecognizer實例。 我最終使用這樣的代碼,這確保了每個圖像都被響應:

for imageView in imageViews {
    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapResponse))
    imageView.addGestureRecognizer(tapGestureRecognizer)
    imageView.isUserInteractionEnabled = true
}

我們的想法是你應該為每個UIImageView創建獨特的手勢識別器。

let gestureRecognizerOne = UITapGestureRecognizer(target: self, action: #selector(tap))
firstImageView.addGestureRecognizer(gestureRecognizerOne)

let gestureRecognizerTwo = UITapGestureRecognizer(target: self, action: #selector(tap))
secondImageView.addGestureRecognizer(gestureRecognizerTwo)

但是我沒有看到你的代碼,所以,也許你應該在循環中創建它或類似的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM