2017-08-09 73 views

回答

5

IBAction,按钮的isUserInteractionEnabled属性更改为false当网络请求执行完毕设置回true

+0

那在大多数情况下,合适的答案,但并没有真正适合我的需要。想像一个可以打开和关闭的按钮,我不想禁用它。其实我认为一个计时器会是一个好主意,这样代码在被按下之后就会被调用。 –

+1

没有你的问题更精确,你不能得到确切的答案。你为什么要多次推一个像按钮?计时器绝对是一个坏主意。想象一下,如果你的连接非常糟糕,那么一个请求需要30秒,1秒的计时器如何提供帮助? –

1

您可以在类中添加一个标志,或使用请求对象,以确定应用是否正在发送

开始发送的值更改为true,就可以完成设置回假

前后

通过这种方式,您可以使用与取消按钮相同的按钮。 或者您可以显示有关发送状态

这里警报是一个示例:

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 
    } 
}