1. 程式人生 > 其它 >iOS開發_適配深色模式

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;
}