Wie man die Navigationsleiste (bzw. NavigationBar) in Swift ändert wurde bereits einem früheren Beitrag vorgestellt. Auf gleiche Weise kann man statt der NavigationBar auch die TabBar anpassen. Dafür benutzt man anstatt der Klasse UINavigationBar einfach die Klasse UITabBar.
Etwas tricky wird es, wenn man den jeweiligen Hintergrund eines einzelnen Bar Items anpassen möchte. Swift bietet dafür (leider) keine hauseigene Methode à la setBarItemBackground. Stattdessen muss man, mit Hilfe der Methode selectionIndicatorImage, den Umweg über eine Hintergrundgrafik gehen:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Set different background for selected bar item // 1. Assign tab bar let tabBarController: UITabBarController = self.window?.rootViewController as! UITabBarController let tabBar: UITabBar = tabBarController.tabBar // 2. Set background image tabBar.selectionIndicatorImage = UIImage(named:"selected_baritem_background") return true }
Der Nachteil an diesem Weg ist, dass die Hintergrunddatei theoretisch von den verschiedenen Breiten und der Anzahl der Elemente der TabBars (iPhone 5, iPhone 6, …) abhängig ist. Die Breite der iPhone 5 TabBar beträgt 320px. Bei 3 TabBarItems muss also die Hintergrundgrafik 320/3 = 106 Pixel Breit sein (Höhe beträgt 49 Pixel).