从Tap Gesture识别器获取标签

问题描述 投票:0回答:2

我有一个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

谢谢!

ios swift uigesturerecognizer uitapgesturerecognizer
2个回答
1
投票

在这里你需要按照两个步骤,

步骤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)
    }

和处理func一样

  @objc func handleTap(_ sender: UITapGestureRecognizer) {
     guard let getTag = sender.view?.tag else { return }
    print("getTag == \(getTag)")
}

0
投票

您可以使用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)
}
© www.soinside.com 2019 - 2024. All rights reserved.