如果重复点击按钮,则防止执行UIButton的IBAction

时间:2017-08-09 10:49:22

标签: ios cocoa-touch uibutton

我有UIButton点击后执行网络代码。网络代码更新服务器上的记录。有没有办法可以防止在重复点击按钮时执行此网络代码,因为这只会浪费资源?

2 个答案:

答案 0 :(得分:5)

IBAction中,将按钮的isUserInteractionEnabled属性更改为false,并在网络请求完成执行后将其设置回true

答案 1 :(得分:1)

您可以在班级中添加标记或使用请求对象来确定应用当前是否正在发送

在开始发送之前,将值更改为true,并在完成后将其设置为false

这样你可以使用相同的按钮作为取消按钮。 或者您可以显示有关发送状态的提醒

这是一个示例:

class ViewController: UIViewController {

   var isSending = false

   @IBAction func sendTouched(_ sender: UIButton) {

      guard !isSending else { return }

      send()
   }

   func send() {

      isSending = true

      // send data to server

   }

   // call this after you finish sending
   func notifyFinished() {

      isSending = false
   }
}