更改全局色调 – iOS7 / iOS8

我们如何才能通过代码更改iOS7 / iOS8上的全局色调颜色 ? 我想更改使用此属性的多个对象,但不会更改每个对象,这就是为什么我想要使用全局tint属性。

只需更改应用程序委托中的UIWindowtintColor ,它将自动作为默认传递给它的所有UIView后代。

 [self.window setTintColor:[UIColor greenColor]]; 

[[UIView appearance] setTintColor:[UIColor greenColor]];

有两种方法可以改变你的全球色调。 正如上面提到的,你可以在应用程序中改变self.window.tintColor -application:didFinishLaunchingWithOptions: self.window.tintColor

在我看来,更优雅的方式是在Storyboard中的File Inspector中设置Global Tint ,而没有select任何东西。 这样你的应用程序-application:didFinishLaunchingWithOptions:更清洁。

文件检查器中的全局色调

您可以通过设置窗口的色调属性为整个应用程序指定一个色调颜色。 为此,您可以使用类似于以下的代码:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window.tintColor = [UIColor purpleColor]; return YES; } 

更新了Swift 2.2

你可以在任何地方这样做:

 // Get app delegate let sharedApp = UIApplication.sharedApplication() // Set tint color sharedApp.delegate?.window??.tintColor = UIColor.green() 

或者如果你想从AppDelegate做到这一点,

 //self.window?.tintColor = UIColor.green()