2017-08-09 57 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 
    } 
}