Ios 如何在Swift中识别UIImage数组中的抽头UIImage

Ios 如何在Swift中识别UIImage数组中的抽头UIImage,ios,swift,uiscrollview,uiimage,uigesturerecognizer,Ios,Swift,Uiscrollview,Uiimage,Uigesturerecognizer,我正在用代码填充UIImage数组,并成功地将它们添加到UIScrollView中。我想确定点击的图像,以便我可以相应地运行操作 我感谢你的指导和时间 以下是我目前掌握的代码: override func viewDidLoad() { super.viewDidLoad() let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.ima

我正在用代码填充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
}
  • 将您的
    TapGestureRecognitor
    设置为全局或将其移动到
    loadImagePicker
    功能

  • isUserInteractionEnabled
    设置为true后,添加手势 通过调用
    imageView.addgestureRecognitizer(点击gestureRecognitizer)

  • 然后执行
    imageTapped
    函数,该函数接受类型为
    uitappesturerecognizer
  • 最后,在imageTapped函数中,通过调用
    sender as?访问点击的UIImageView?UIImageView
  • 将您的
    TapGestureRecognitor
    设置为全局或将其移动到
    loadImagePicker
    功能

  • isUserInteractionEnabled
    设置为true后,添加手势 通过调用
    imageView.addgestureRecognitizer(点击gestureRecognitizer)

  • 然后执行
    imageTapped
    函数,该函数接受类型为
    uitappesturerecognizer
  • 最后,在imageTapped函数中,通过调用
    sender as?访问点击的UIImageView?UIImageView

  • 将手势识别器添加到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=UITapGestureRecognizer(目标:self,操作:#选择器(self.imageTapped(:))
    tapGestureRecognizer.numberOfTapsRequired=1
    tapGestureRecognizer.numberoftouchsrequired=1
    func loadImagePicker(){
    // .....
    
    对于0..将手势识别器添加到图像视图,如下所示:

        //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=UITapGestureRecognizer(目标:self,操作:#选择器(self.imageTapped(:))
    tapGestureRecognizer.numberOfTapsRequired=1
    tapGestureRecognizer.numberoftouchsrequired=1
    func loadImagePicker(){
    // .....
    
    对于0..Hello Badhan,感谢您的回复。首先,循环上有三个图像,它也计数为0。我已尝试打印索引。因此,我加载了三个图像,您的代码识别最后一个图像上的点击,并将其打印/标记为0。您能帮助我为什么这样做吗?哦,我意识到我的循环没有添加imageView.AddGestureRecoginazer(点击手势识别器)对于所有图像。无法找出原因。只执行一次。这就是为什么它只被标记一次。但是我可以在scrollview中看到图像,所以它们就在那里。好的,现在请尝试将手势初始化代码放入for循环,而不是实例变量。巴丹,这很有效!非常感谢。但是,它仍然打印相同的标记,即0。尽管如此,我还是成功地在不使用标记的情况下获得了我想要的结果。再次感谢!您好Badhan,感谢您的回复。首先,循环中有三个图像,它也计数为0。我已尝试打印索引。因此,我的三个图像加载,您的代码识别单击最后一个图像,并将/标记打印为0。您能帮助我为什么吗是吗?哦,我意识到我的循环没有添加imageView.AddGestureRecognitizer(TapGestureRecognitizer)对于所有图像。无法找出原因。只执行一次。这就是为什么它只被标记一次。但是我可以在scrollview中看到图像,所以它们就在那里。好的,现在请尝试将手势初始化代码放入for循环,而不是实例变量。巴丹,这很有效!非常感谢。但是,它仍然打印相同的标记,即0.尽管如此,我还是成功地在不使用tag的情况下获得了我想要的结果。再次感谢!。