ios - 如何只在多次按下时才触发按钮 Action ?

标签 ios swift3

我是 Swift 3 的新手。目前,我有一个 UIBarButtonItem。如何让这个按钮 Action 只有在多次按下时才会触发?例如,只有当用户按下此按钮两次时,才会出现 ViewController。

最佳答案

UIBarButtonItem 创建自定义 View 并为自定义 View 添加 UITapGestureRecognizer 并将 numberOfTapsRequired 属性值设置为 2

示例代码:

 class viewController: UIViewController {

        var doubleTapGesture: UITapGestureRecognizer!
        var barButton: UIBarButtonItem!
        var button: UIButton!

        override func viewDidLoad() {
            super.viewDidLoad()

            button = UIButton(type: .custom)
            button.setTitle("title", for: .normal)
            button.frame = CGRect(x: 0, y: 0, width: 64, height: 30)

            doubleTapGesture = UITapGestureRecognizer(target: self, action: #selector(viewController.buttonClicked))
            doubleTapGesture.numberOfTapsRequired = 2

            button.addGestureRecognizer(doubleTapGesture)

            barButton = UIBarButtonItem(customView: button);
            navigationItem.rightBarButtonItem = barButton
        }

        func buttonClicked() {
            // Method for UITapGestureRecognizer
        }
    }

关于ios - 如何只在多次按下时才触发按钮 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45235097/

相关文章:

ios - 我应该在 iOS 应用程序中将图像保存到本地存储吗?

ios - 将 4x4 矩阵传递给 glUniformMatrix4fv

objective-c - 在 UITextField 中输入数字后,如何使小键盘消失?

IOS swift 我可以消除 TableView 中未使用的行吗

ios - 从子 ViewController 执行 segue

快速后端,完善框架

ios - 如何在 TableViewController B 中选择行时在 ViewController A 中启用 UI 按钮

ios - Action 按钮未在本地通知中显示ios 9.2 swift 2

ios - 使用 CallKit 接听电话时如何显示 ViewController

ios - 如何通过 UITableViewCell 打开 URL