iOS开发_适配深色模式

1、颜色

  • 1.1 系统自动处理

复制self.backgroundColor = [UIColor systemRedColor];
  • 1.2 自定义颜色

UIColor *color = [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull traitCollection) {
    if (traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
        // 深色模式下的颜色
        return [UIColor blueColor];
    }
    else {
        // 浅色模式下的颜色
        return [UIColor purpleColor];
    }
}];

self.backgroundColor = color;

3、模式变化监听

  • 在UIViewController、UIView上重写以下方法进行监听。
// 重写该方法监听模式的改变
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
    [super traitCollectionDidChange:previousTraitCollection];
    
    NSLog(@"traitCollectionDidChange");
    // 创建动态 color
    UIColor *color = [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull traitCollection) {
        if (traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
            return [UIColor darkGrayColor];
        }
        else {
            return [UIColor redColor];
        }

    }];
    self.backgroundColor = color;
}
posted @   CH520  阅读(370)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示