簡體   English   中英

如何在Swift中的UIImage數組中識別輕擊的UIImage

[英]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

    }
  1. 使tapGestureRecognizer全局化或將其移至loadImagePicker函數。

  2. 設置完成后isUserInteractionEnabled為真,添加手勢識別器到imageView調用imageView.addGestureRecognizer(tapGestureRecognizer)

  3. 然后實現imageTapped函數,該函數接受UITapGestureRecognizer類型的發送者
  4. 最后,在imageTapped函數中,訪問通過將sender as? UIImageView調用為來竊聽的UIImageView sender as? UIImageView sender as? UIImageView

暫無
暫無

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

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