在swift中更改默认的全局色调颜色

Jos*_*ría 10 uitabbarcontroller swift xcode6 ios8

我正在开发一个小应用程序,我想将默认的全局色调颜色从蓝色更改为橙​​色.我已经在Objective-C中看到了很多方法,但我似乎无法使用swift来实现它.我怎么能实现这个目标?提前致谢!

aka*_*kyy 31

这可不容易吗?

@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

        // ...

        self.window!.tintColor = UIColor.orangeColor()

        return true
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Swift等效的Objective-C:

@interface AppDelegate <UIResponder, UIApplicationDelegate>

@property (nonatomic, strong) UIWindow *window;

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // ...

    self.window.tintColor = [UIColor orangeColor];

    return YES;
}

@end
Run Code Online (Sandbox Code Playgroud)

如果您正在使用故事板,请不要在其中添加任何代码AppDelegate,只需更改故事板的"全局色调"属性:


pal*_*lme 12

Apple 的一个小更新在这里。使用 Xcode 版本 12.4 进行测试。

现在,颜色资源目录中有一个AccentColor可以在构建设置中进行设置的颜色资源。在较新的项目中,它是默认设置的,但较旧的项目可能需要手动添加它。

  1. 创建一个名为“ AccentColor”(或任何您喜欢的名称) 的颜色资源在此输入图像描述
  2. 转到目标的构建设置,然后添加颜色资源的名称作为条目“ Global Accent Color Name”的值。 在此输入图像描述

请注意AccentColor资产名称不是保留的关键字,并且可以是任何自定义内容,但“构建”设置才是使其发挥作用的原因。

基本上,iOS还没有任何与Android主题相同的东西(2021),标准颜色有关键字,我们不能简单地在资产中设置它们。

  • 实际最佳解决方案。不知道还有这个东西,太神奇了。 (2认同)