UILongPressGesture 被调用两次

UILongPressGesture gets called twice

所以当我长按一个按钮时,它会识别出长按,但 "test" 会被调用两次。我该如何防止这种情况发生?

@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()
}

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

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

    // do stuff here
}

试一试,这里是如何使用#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)
}