I Know filtering oneTap/doubleTap using a Apple API. code are follows.
UITapGestureRecognizer *doubleTapGestureRecognizer = [[UITapGestureRecognizer alloc]
Swift 3.1 version of eladleb's answer.
override func touchesBegan(_ touches: Set, with event: UIEvent) { super.touchesBegan(touches, with: event) DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { [weak self] in if self?.state != .recognized { self?.state = .failed } } }