一尘不染

带有单按和长按事件的UIButton快速

swift

我想对button click和触发两个操作button long click。我UIbutton在界面生成器中添加了一个。IBAction我如何使用有人可以告诉我如何对此进行归档来触发两个操作?

这是我用于按钮单击的代码

@IBAction func buttonPressed (sender: UIButton) { .... }

我可以使用这种方法还是必须使用另一种方法才能长按?


阅读 237

收藏
2020-07-07

共1个答案

一尘不染

如果您想通过单击来执行任何动作并长按,则可以通过以下方式将手势添加到按钮中:

@IBOutlet weak var btn: UIButton!

override func viewDidLoad() {

    let tapGesture = UITapGestureRecognizer(target: self, #selector (tap))  //Tap function will call when user tap on button
    let longGesture = UILongPressGestureRecognizer(target: self, #selector(long))  //Long function will call when user long press on button.
    tapGesture.numberOfTapsRequired = 1
    btn.addGestureRecognizer(tapGesture)
    btn.addGestureRecognizer(longGesture)
}

@objc func tap() {

    print("Tap happend")
}

@objc func long() {

    print("Long press")
}

这样,您可以为单个按钮添加多种方法,而您只需要为此按钮设置插座即可。

2020-07-07