代码之家  ›  专栏  ›  技术社区  ›  subin272

修复iOS中的多个按钮单击事件?

  •  2
  • subin272  · 技术社区  · 6 年前

    是否有任何方法可以防止多个按钮单击事件。在我的应用程序中,我有一个场景,当用户连续点击按钮时,会调用多个按钮事件。即使在添加加载指示器后,有时仍会发生这种情况。是否有任何通用解决方案来处理此问题?

    3 回复  |  直到 6 年前
        1
  •  1
  •   Nilay    6 年前

    当您单击click方法中的按钮时,输入代码

    btnClick.userInteractionEnabled = false;
    

    在您完成任务后,它将不再允许用户单击按钮,请放置另一行代码以允许用户单击按钮

    btnClick.userInteractionEnabled = true;
    
        2
  •  1
  •   Muhammad Shauket    6 年前

    如果使用UiButton,请尝试此操作

    @IBAction func tapButton(sender: Any) {
        print("Tap")
        let btn = sender as! UIButton
        btn.isUserInteractionEnabled = false
    }
    

    如果你使用UIBarButtonItem,试试这个

       leftButton = UIBarButtonItem(image: UIImage(named: "backimage")!, style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.toggleLeft))
        leftButton.title = "Back"
    
        navigationItem.leftBarButtonItem = leftButton
    
    
    @objc public func toggleLeft() {
        print("tap")
        leftButton.isEnabled = false
    //   self.navigationController?.popViewController(animated: true)
    }
    
        3
  •  0
  •   jeprubio    5 年前

    在尝试了启用/禁用按钮和启用/禁用UI(这一点都不推荐)等不同方法之后,我觉得最好的方法是使用“bool”变量来检查按钮单击的状态。

    `
    var isButtonTapped = false
    @IBAction func tapButton(sender: Any) {
        print("Tap")
        if(!isButtonTapped){
        //Perform your operations or page navigations. After the navigation operation set the bool value to true.
        isButtonTapped = true;
      }
    }`
    

    当从导航时,请确保将布尔值重置为false ViewController .你可以在 ViewDidDisappear