2015-04-17 68 views
15

我試圖將我的活動指示器更改爲黑色等自定義顏色。但它似乎並不適用,並且仍然具有標準的白色。將活動指示器顏色更改爲黑色

我所做的是創建一個UIView並添加一個活動指示器作爲一個子視圖,然後將其添加到tableFooterView。

如何更改活動指示器顏色?

viewDidLoad中:

let footerView = UIView(frame: CGRectMake(0, 0, self.view.frame.size.width, 40)) 
    footerView.backgroundColor = UIColor(rgba: "#f6f7f9") 
    var actInd: UIActivityIndicatorView = UIActivityIndicatorView() 
    actInd.color = UIColor.blackColor() 
    actInd.frame = CGRectMake(self.view.frame.size.width/2-10, 0.0, 20.0, 20.0); 

    actInd.activityIndicatorViewStyle = 
     UIActivityIndicatorViewStyle.WhiteLarge 
    footerView.addSubview(actInd) 
    actInd.startAnimating() 
    self.tableVIew.tableFooterView = footerView 
+0

實際上,你是正確的使用顏色屬性一樣。只需在添加顏色之前設置指示器樣式。 – Akaino

回答

40

您需要您設置活動的指標後,風格設置顏色。看來,設置activityIndicatorViewStyle重置爲activityIndicator

的顏色,所以只是這樣做:

// .... 

actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.whiteLarge 
actInd.color = UIColor.black 
footerView.addSubview(actInd) 
actInd.startAnimating() 
self.tableVIew.tableFooterView = footerView 

這應該只是罰款。

+0

謝謝Catalina!你救了我的一天;) –

+0

不客氣:)快樂,我可以幫助 –

8

文檔狀態

如果設置一個顏色一個活動的指標,它覆蓋由activityIndi​​catorViewStyle酒店所提供的顏色 。

所以你必須先設置activityIndicatorViewStyle然後設置顏色。

正確:

actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge 
actInd.color = UIColor.blackColor() 

錯誤:

actInd.color = UIColor.blackColor() 
actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge 
+0

謝謝,對我完美的工作! –

+0

謝謝你提供的答案 – vmeyer

0

你應該改變你的顏色,你設定的指標伴奏之後。其他一切對我來說都很好。

0

斯威夫特3版

在主類ViewController添加activityIndi​​cator:

class ViewController: UIViewController, WKNavigationDelegate { 

let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge) 

然後在viewDidLoad()

override func viewDidLoad() { 
super.viewDidLoad() 

activityIndicator.color = UIColor.black 
activityIndicator.center = CGPoint(x: view.bounds.size.width/2, y: view.bounds.size.height/2) 
view.addSubview(activityIndicator) 
activityIndicator.startAnimating() 

要刪除activityIndi​​cator:

activityIndicator.stopAnimating() 
3

這是Swift 4的一個擴展,它可以很容易地爲指標着色。

import UIKit 

extension UIActivityIndicatorView { 
    func assignColor(_ color: UIColor) { 
     activityIndicatorViewStyle = .whiteLarge 
     self.color = color 
    } 
} 

你這樣稱呼它:

activityIndicator.assignColor(.black) 

下面是這個代碼在行動,隨機計時改變顏色: enter image description here