2015-04-17 9 views
15

Ich versuche, meinen Aktivitätsindikator in eine benutzerdefinierte Farbe wie Schwarz zu ändern. Es scheint jedoch überhaupt nicht zu sein und hat die Standardfarbe Weiß noch.Ändern der Aktivitätsanzeigefarbe in Schwarz

Was ich getan habe, ist ein UIView erstellt und und hinzugefügt einen Aktivitätsindikator als SubView und dann hinzugefügt, um die TableFooterView.

Wie kann ich die Farbe der Aktivitätsanzeige ändern?

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

Sie es tatsächlich tat die Farbe Eigenschaft rechten Seite. Setzen Sie den Anzeigestil, bevor Sie Farbe hinzufügen. – Akaino

Antwort

40

Sie müssen die Farbe einzustellen, nachdem Sie die Aktivitätsanzeige Stil. Es scheint, dass die activityIndicatorViewStyle setzt die Farbeinstellung dies für die activityIndicator

So einfach tun:

// .... 

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

Dies sollte gut funktionieren.

+0

Danke Catalina! Du hast mir den Tag gerettet;) –

+0

Gern geschehen :) Happy, ich könnte helfen –

8

In der Dokumentation

Wenn Sie eine Farbe für einen Aktivitätsindikator gesetzt, es überschreibt die Farbe von der activityIndicatorViewStyle Eigenschaft zur Verfügung gestellt.

Also müssen Sie zunächst die activityIndicatorViewStyle einstellen und dann die Farbe einstellen.

Richtig:

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

Falsch:

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

danke, arbeite perfekt für mich !!! –

+0

danke für die dokumentierte Antwort – vmeyer

0

Sie sollten Ihre Farbe ändern, nachdem Sie das Kennzeichen Stil. Alles andere sieht gut für mich aus.

0

Swift 3-Version

In Hauptklasse ViewController activityIndicator hinzufügen:

class ViewController: UIViewController, WKNavigationDelegate { 

let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge) 

Dann in 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() 

activityIndicator entfernen:

activityIndicator.stopAnimating() 
3

Hier ist eine Erweiterung für Swift 4, mit der sich der Indikator leicht einfärben lässt.

import UIKit 

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

Sie nennen es wie folgt aus:

activityIndicator.assignColor(.black) 

Hier ist dieser Code in Aktion, mit einem zufälligen Timer Farben zu ändern: enter image description here