UILongPressGesture被调用两次

时间:2016-04-23 10:10:04

标签: swift uilongpressgesturerecogni

因此,当我长按一个按钮时,它会识别长按,但“测试”会被调用两次。我该如何防止这种情况发生?

@IBOutlet weak var button2: UIButton!

func longPressMe(){
   print("test")
}

func longPressGes(){
    let longpress = UILongPressGestureRecognizer(target: self, action: "longPressMe")
    longpress.minimumPressDuration = 1
    button2.addGestureRecognizer(longpress)
}


override func viewDidLoad() {
    super.viewDidLoad()
    longPressGes()
}

2 个答案:

答案 0 :(得分:2)

您必须检查手势识别器的状态。将longPressMe()更改为以下内容:

func longPressMe(recognizer: UILongPressGestureRecognizer) {
    guard recognizer.state == .Began else { return }

    // do stuff here
}

答案 1 :(得分:-1)

试一试,这里是如何使用#selector:

func longPressMe(recognizer: UILongPressGestureRecognizer) {
   // do stuff here
}

func longPressGes(){
    let longpress = UILongPressGestureRecognizer(target: self, action: #selector(yourViewController.longPressMe(_:)))
    longpress.minimumPressDuration = 1
    button2.addGestureRecognizer(longpress)
}