剛剛有類似的問題!我想對我的Web應用程序執行一次HTTP調用,這是必要的,所以我需要一個推文的URL。 (在我的情況下,它更復雜,因爲對Web應用程序的調用也在異步線程中。)有兩種方法可以實現它...您可以向故事板添加活動指示器視圖並按照此處所述創建IBActions: http://sourcefreeze.com/uiactivityindicatorview-example-using-swift-in-ios/
我發現它更簡單,只是通過代碼添加UIActivityIndicatorView
。當你的類的成員:權之前
func startActtivityIndicator(){
activityIndicator.center = self.view.center
activityIndicator.hidesWhenStopped = true
self.view.addSubview(activityIndicator)
activityIndicator.startAnimating()
}
func stopActtivityIndicator(){
activityIndicator.stopAnimating()
activityIndicator.removeFromSuperview()
}
然後調用startActivityIndicator()
在你的按鈕處理您的第一個動作,並stopActtivityIndicator()
:
let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
我增加中的新方法startAnimating()
和stopAnimating()
電話你顯示Facebook的份額。對我來說,因爲我想結束的指示和顯示鳴叫盒(響應異步HTTP請求使用SLComposeViewController
,我只好打電話回主線程停止方法是這樣的:
DispatchQueue.main.async(execute: {() -> Void in
self.stopActtivityIndicator()
})
我我沒有收到任何事件,當從UIActivityViewController點擊Facebook按鈕時,我沒有收到任何事件;這就是問題 –
啊,它確實是關於Facebook共享的延遲雖然他們沒有直接解決這個問題,但是http://stackoverflow.com/questions/13519904/how-to-make-the-presentviewcontroller-with-slcomposeviewcontroller-faster中的一些答案可能會有所幫助。 。介紹如何預加載'SLComposeViewController'以使其更快,另一個建議加載它異步,防止應用程序放緩 –