2 Stimmen

Schnelles Ändern der Farbe von NavigationControl und TabBar

Ich möchte die Farbe der Zurück-Schaltfläche der NavigationControl der gesamten App ändern. Wie kann ich das machen? Ich möchte sie rot haben, anstatt der normalen blauen Schaltfläche...

Und ich habe ein Problem mit meiner TabBar. Ich habe die Farbe und den Namen der Symbole von Standardblau auf Rot geändert mit diesen:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions [NSObject: AnyObject]?) -> Bool {
    // Überschreibepunkt für Anpassungen nach dem Start der Anwendung.
    UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.redColor()], forState: .Selected)

Und das hier

class TabBarController: UITabBarController {

var color = UIColor.redColor()

override func viewDidLoad() {
    super.viewDidLoad()
    // Führe zusätzliche Einrichtung nach dem Laden der Ansicht aus, üblicherweise aus einer Nib-Datei.
    self.tabBarController?.tabBar.selectedImageTintColor = UIColor.redColor()
    UITabBar.appearance().selectedImageTintColor = UIColor.redColor()

Aber ich habe mehr als 5 Tabs, also habe ich die Schaltfläche "Mehr", und wenn ich darauf drücke, sind die Symbole nicht rot, sondern blau. Und wenn ich die Tab-Leiste bearbeite, ist der Name des Tabs rot, aber das Symbol nicht. Was kann ich tun? Bild zur Erklärung: http://postimg.org/image/67oqa15ll/

7voto

MatLaMEnacE Punkte 71

Um die Text- und Symbolfarbe für alle UITabBarItems in der gesamten Anwendung zu ändern (in Swift / Xcode 6) :

In der AppDelegate.swift :

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    // Override point for customization after application launch.

    UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: deine_farbe ], forState: .Selected)

    UITabBar.appearance().tintColor = deine_farbe

    return true

}

Und das wird den Trick machen!

1voto

Beslan Tularov Punkte 3071

Versuche dies in deinem ersten ViewController

class ViewController: UIViewController,UITabBarDelegate, UITabBarControllerDelegate, UINavigationControllerDelegate {

        override func viewDidLoad() {
            super.viewDidLoad()

            UITabBar.appearance().tintColor = UIColor.redColor()
            var view: UITableView = self.tabBarController?.moreNavigationController.topViewController.view as UITableView
            view.tintColor = UIColor.redColor()
            if view.subviews.count != 0 {
                for cell in view.visibleCells() {
                    cell.textLabel??.textColor = UIColor.redColor()
                }
            }
        }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Entsorge alle Ressourcen, die wiederhergestellt werden können.
    }

}

und dies in deinem UITabbarController

class TabbarViewController: UITabBarController,UITabBarDelegate, UITabBarControllerDelegate, UINavigationControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Führe alle zusätzlichen Einrichtungen nach dem Laden der Ansicht aus.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Entsorge alle Ressourcen, die wiederhergestellt werden können.
    }

    override func tabBar(tabBar: UITabBar, didBeginCustomizingItems items: [AnyObject]) {
        self.view.tintColor = UIColor.redColor()

    }
}

Beispielprojekt https://www.dropbox.com/s/kbm4l60cnvyrf5h/UItabbarCustomizing.zip?dl=0

Ich hoffe, ich habe dir geholfen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X