Pass Parameter with UITapGestureRecognizer

后端 未结 3 874
Happy的楠姐
Happy的楠姐 2021-02-18 15:51

Is there any way i can pass parameters with UITapGestureRecognizer? I\'ve seen this answered for objective-c but couldn\'t find an answer for swift

test.userInte         


        
3条回答
  •  清歌不尽
    2021-02-18 16:21

    One approach would be to subclass UITapGestureRecognizer and then set a property, I've posted an example below. You could also do some check on the sender and check if equal to some tag, class, string, e.t.c

    class ViewController: UIViewController {
    
        @IBOutlet weak var label1: UILabel!
        @IBOutlet weak var image: UIImageView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            image.userInteractionEnabled = true;
            let tappy = MyTapGesture(target: self, action: #selector(self.tapped(_:)))
            image.addGestureRecognizer(tappy)
            tappy.title = "val"
        }
    
        func tapped(sender : MyTapGesture) {
            print(sender.title)
            label1.text = sender.title
        }
    }
    
    class MyTapGesture: UITapGestureRecognizer {
        var title = String()
    }
    

    There are lots of examples on SO, have a look, good luck.

提交回复
热议问题