[英]Getting Tag from Tap Gesture Recognizer
我有一組 UIImageViews 並以編程方式為它們分配了點擊手勢識別器。
myImages.forEach{ UIImageView in
let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap(gesture:)))
tap.numberOfTapsRequired = 1
tap.delegate = self
view.addGestureRecognizer(tap)
}
將發件人分配給每個人的最佳方法是什么(或確定以另一種方式點擊哪個圖像)? 我試過不成功
var tag = sender.view!.tag
謝謝!
在這里你需要遵循兩個步驟,
第1步
在附加到 myImages 數組之前為 imageview 分配tags
。
第2步
從 imageview 數組中獲取標簽並分配給您的每個手勢
myImages.forEach{
let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
tap.numberOfTapsRequired = 1
tap.view?.tag = $0.tag
$0.isUserInteractionEnabled = true
$0.addGestureRecognizer(tap)
}
並像處理函數一樣
@objc func handleTap(_ sender: UITapGestureRecognizer) {
guard let getTag = sender.view?.tag else { return }
print("getTag == \(getTag)")
}
您可以使用 UITapGestureRecognizer init 提供的塊來就地訪問您的圖像。
myImages.forEach { image in
let tap = UITapGestureRecognizer(block: {[weak self] _ in
//Do your stuff here
//print("Image Tapped:", image.debugDescription)
}, delegate: self)
tap.numberOfTapsRequired = 1
image.addGestureRecognizer(tap)
}
如果你想在UICollectionView 或 UITableView 單元格中設置UITapGestureRecognizer那么下面的解決方案對我們很有用。
步驟1將UITapGestureRecognizer 分配給UICollectionView 或UITableView 單元格中的particuller textview 或其他視圖。
cell.textView?.delegate = self
cell.textView?.isEditable = false
cell.textView?.isSelectable = true
let tap = UITapGestureRecognizer(target: self, action:#selector(self.onclickLink(_:)))
cell.textView?.tag = indexPath.row
tap.numberOfTapsRequired = 1
cell.textView?.addGestureRecognizer(tap)
步驟 2在 onclick 操作中從 UITextView 或其他 View 獲取標簽。
@IBAction func onclickLink(_ sender: UITapGestureRecognizer) {
print("indexPathRow == \(sender.view?.tag ?? 0)")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.