In AppDelegate hat dies das Format der NavBar global geändert und die untere Zeile / den Rand (der für die meisten Menschen ein Problembereich darstellt) entfernt, um Ihnen das zu geben, wonach Sie und andere meiner Meinung nach suchen:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarPosition: UIBarPosition.Any, barMetrics: UIBarMetrics.Default)
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
UINavigationBar.appearance().barTintColor = Style.SELECTED_COLOR
UINavigationBar.appearance().translucent = false
UINavigationBar.appearance().clipsToBounds = false
UINavigationBar.appearance().backgroundColor = Style.SELECTED_COLOR
UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : (UIFont(name: "FONT NAME", size: 18))!, NSForegroundColorAttributeName: UIColor.whiteColor()] }
Dann können Sie eine Constants.swift einrichten Datei einrichten. Darin enthalten ist eine Style-Struktur mit Farben und Schriftarten usw. Anschließend können Sie jedem ViewController eine tableView / pickerView hinzufügen und das Array "availableThemes" verwenden, damit der Benutzer themeColor ändern kann.
Das Schöne daran ist, dass Sie für jede Farbe eine Referenz in Ihrer gesamten App verwenden können. Diese wird basierend auf dem vom Benutzer ausgewählten "Thema" aktualisiert. Ohne eine Referenz wird standardmäßig das Thema1 () verwendet:
import Foundation
import UIKit
struct Style {
static let availableThemes = ["Theme 1","Theme 2","Theme 3"]
static func loadTheme(){
let defaults = NSUserDefaults.standardUserDefaults()
if let name = defaults.stringForKey("Theme"){
// Select the Theme
if name == availableThemes[0] { theme1() }
if name == availableThemes[1] { theme2() }
if name == availableThemes[2] { theme3() }
}else{
defaults.setObject(availableThemes[0], forKey: "Theme")
theme1()
}
}
// Colors specific to theme - can include multiple colours here for each one
static func theme1(){
static var SELECTED_COLOR = UIColor(red:70/255, green: 38/255, blue: 92/255, alpha: 1) }
static func theme2(){
static var SELECTED_COLOR = UIColor(red:255/255, green: 255/255, blue: 255/255, alpha: 1) }
static func theme3(){
static var SELECTED_COLOR = UIColor(red:90/255, green: 50/255, blue: 120/255, alpha: 1) } ...