2015-09-04 46 views
0

我很難爲活動指示器背景找到合適的解決方案。我想在視圖控制器加載時爲活動指示器設置動畫,並且爲指示器後面的整個視圖控制器設置灰色透明背景,同時它動畫。一旦指標停止動畫,灰色透明背景應該被移除,用戶應該能夠恢復屏幕上的交互。設置UIActivityIndi​​catorView背景

我認爲這是應用程序的標準,但我一直無法在Swift中找到一個好的解決方案。下面是我的代碼到目前爲止設置活動指示燈:

let indicator: UIActivityIndicatorView = UIActivityIndicatorView() 
indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.White 
indicator.hidesWhenStopped = true 
indicator.center = self.view.center 
self.view.addSubview(indicator) 
indicator.startAnimating() 

回答

1

可以爲指標的背景創建一個UIView:

func showActivityIndicatory(uiView: UIView) { 
    var container: UIView = UIView() 
    container.frame = uiView.frame 
    container.center = uiView.center 
    container.backgroundColor = UIColorFromHex(0xffffff, alpha: 0.3) 

    var loadingView: UIView = UIView() 
    loadingView.frame = CGRectMake(0, 0, 80, 80) 
    loadingView.center = uiView.center 
    loadingView.backgroundColor = UIColorFromHex(0x444444, alpha: 0.7) 
    loadingView.clipsToBounds = true 
    loadingView.layer.cornerRadius = 10 

    var actInd: UIActivityIndicatorView = UIActivityIndicatorView() 
    actInd.frame = CGRectMake(0.0, 0.0, 40.0, 40.0); 
    actInd.activityIndicatorViewStyle = 
       UIActivityIndicatorViewStyle.WhiteLarge 
    actInd.center = CGPointMake(loadingView.frame.size.width/2, 
       loadingView.frame.size.height/2); 
    loadingView.addSubview(actInd) 
    container.addSubview(loadingView) 
    uiView.addSubview(container) 
    actInd.startAnimating() 
} 

編號:https://coderwall.com/p/su1t1a/ios-customized-activity-indicator-with-swift

+0

這是偉大的,謝謝。但是,我不確定何時/何時適當地調用此函數,以便在顯示視圖控制器時立即顯示它。 – wizards040

+0

你想要什麼指標? – anhtu

+0

我想在顯示指標和容器視圖的同時從服務器上獲取數據,一旦這些函數完成就停止動畫,然後隱藏容器視圖和指示器。如果您可以調整您提供的解決方案,那將是非常棒的。謝謝! – wizards040

相關問題