2

有什么方法可以防止多个按钮单击事件。在我的应用程序中,我有一个场景,当用户连续点击按钮时会调用多个按钮事件。即使添加了加载指示器,有时它仍然会发生。有没有通用的解决方案来处理这个问题?

4

3 回答 3

1

当您单击 click 方法中的按钮时,放置代码

btnClick.userInteractionEnabled = false;

完成任务后,它将不再让用户单击按钮放置另一行代码以使用户能够单击按钮

btnClick.userInteractionEnabled = true;
于 2018-05-24T13:14:37.767 回答
1

如果你使用 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)
}
于 2018-05-24T13:20:17.140 回答
0

在尝试了启用/禁用按钮和启用/禁用 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;
  }
}`

确保在离开时将 bool 值重置为 false ViewController。你可以在ViewDidDisappear.

于 2018-06-30T06:27:05.457 回答