How to call gesture tap on UIView programmatically in swift

后端 未结 23 1753
情歌与酒
情歌与酒 2020-11-28 18:50

I have a UIView and and I have added tap gesture to it:

let tap = UITapGestureRecognizer(target: self, action: Selector(\"handleTap:\"))
tap.delegate = self         


        
23条回答
  •  栀梦
    栀梦 (楼主)
    2020-11-28 19:19

    For Swift 4:

    let tap = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(_:)))
    
    view.addGestureRecognizer(tap)
    
    view.isUserInteractionEnabled = true
    
    self.view.addSubview(view)
    
    // function which is triggered when handleTap is called
    @objc func handleTap(_ sender: UITapGestureRecognizer) {
        print("Hello World")
    }
    

    In Swift 4, you need to explicitly indicate that the triggered function is callable from Objective-C, so you need to add @objc too your handleTap function.

    See @Ali Beadle 's answer here: Swift 4 add gesture: override vs @objc

提交回复
热议问题