[英]How to Identify Tapped UIImage in UIImage array in Swift
我用代碼填充UIImage數組,並將它們成功添加到UIScrollView中。 我想識別點擊的圖像,以便可以相應地執行操作。
感謝您的指導和時間。
這是我到目前為止的代碼:
override func viewDidLoad() {
super.viewDidLoad()
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.imageTapped(_:)))
}
func loadImagePicker(){
var contentWidth: CGFloat = 0.0
let imageWidth: CGFloat = 100.0
let imageHeight: CGFloat = 100.0
for x in 0...2 {
let image = UIImage(named: "item\(x).png")
let imageView = UIImageView(image: image)
imageView.isUserInteractionEnabled = true
myData.images1.append(imageView)
var newX: CGFloat = 0.0
newX = 10 + imageWidth * CGFloat(x) + (10 * CGFloat(x))
contentWidth += newX
scrollView.addSubview(imageView)
imageView.frame = CGRect(x: newX, y: scrollView.frame.size.height, width: imageWidth, height: imageHeight)
imageView.contentMode = .scaleToFill
}
print(myData.images1.count)
scrollView.clipsToBounds = false
scrollView.contentSize = CGSize(width: contentWidth, height: scrollView.frame.size.height)
imagePickerView.isHidden = false
}
將手勢識別器添加到您的imageView中,如下所示:
//Instance Variable
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.imageTapped(_:)))
tapGestureRecognizer.numberOfTapsRequired = 1
tapGestureRecognizer.numberOfTouchesRequired = 1
func loadImagePicker(){
// .....
for 0..<2 { //Assuming there are two images
// .....
// .....
imageView.addGestureRecognizer(tapGestureRecognizer)
}
}
func imageTapped(_ sender: UITapGestureRecognizer) {
let tappedImageView = sender.view as! UIImageView
let index = tappedImageView.tag // Do anything with the index by using it in your array
}
使tapGestureRecognizer
全局化或將其移至loadImagePicker
函數。
設置完成后isUserInteractionEnabled
為真,添加手勢識別器到imageView
調用imageView.addGestureRecognizer(tapGestureRecognizer)
imageTapped
函數,該函數接受UITapGestureRecognizer
類型的發送者 sender as? UIImageView
調用為來竊聽的UIImageView sender as? UIImageView
sender as? UIImageView
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.