iOS開發_適配深色模式
阿新 • • 發佈:2022-05-10
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; }