How to call gesture tap on UIView programmatically in swift

后端 未结 23 1791
情歌与酒
情歌与酒 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:03

    Swift 5.1 Example for three view

    Step:1 -> Add storyboard view and add outlet viewController UIView

    @IBOutlet var firstView: UIView!
    @IBOutlet var secondView: UIView!
    @IBOutlet var thirdView: UIView!
    

    Step:2 -> Add storyBoard view Tag

    Step:3 -> Add gesture

    override func viewDidLoad() {
            super.viewDidLoad()
    
            firstView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.tap(_:))))
            firstView.isUserInteractionEnabled = true
            secondView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.tap(_:))))
            secondView.isUserInteractionEnabled = true
            thirdView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.tap(_:))))
            thirdView.isUserInteractionEnabled = true
        }
    

    Step:4 -> select view

    @objc func tap(_ gestureRecognizer: UITapGestureRecognizer) {
            let tag = gestureRecognizer.view?.tag
            switch tag! {
            case 1 :
                print("select first view")
            case 2 :
                print("select second view")
            case 3 :
                print("select third view")
            default:
                print("default")
            }
        }
    

提交回复
热议问题