圖片適配:
使用ImageSet
打開Assets.xcassets
新建一個Image set ?選擇右邊欄的Appearances中對應(yīng)的選項適配深色模式形庭。
使用方法:[UIImage imageNamed:@"xxxx"];
顏色適配:
使用ColorSet
打開Assets.xcassets
新建一個Color set ?選擇右邊欄的Appearances中對應(yīng)的選項適配深色模式蚜点。
使用方法:
self.view.backgroundColor = ?[UIColor colorNamed:@"xxxx"];
建議寫一個通用的方法來設(shè)置顏色
舉個栗子??:
注:[UIColor colorNamed:colorName]; 這個方法iOS11 之后才支持使用
self.view.backgroundColor = [self fitDeviceModeColorWithColorSetByColorName:colorName orWithColor:color];
-(UIColor *)fitDeviceModeColorWithColorSetByColorName:(NSString *)colorName orWithColor:(UIColor *)color{
? ? if(@available(iOS11.0, *)) {
? ? ? ? return [UIColor colorWithDynamicProvider:^UIColor*_Nonnull(UITraitCollection*_NonnulltraitCollection) {
? ? ? ? ? ? return ?[UIColor colorNamed:colorName];
? ? ? ? }];
? ? }else{
? ? ? ? return color;
? ? }
}
適配暗黑遇到的問題:
1:tabbar圖標(biāo)在切換深色模式時,圖標(biāo)沒有發(fā)生改變隅俘。重新打開app才生效
解決方案:
tabbar 在ImageSet中設(shè)置渲染模式為:Original Image。這樣app切換深/淺模式后,tabbar圖標(biāo)會相對應(yīng)發(fā)生變化继效。
2:有拉伸的圖片在模式切換之后熟丸,圖片沒有發(fā)生變化训措。
解決方案:圖片的拉伸在Image set 里設(shè)置Slicing。
禁用深色模式:
1: 在App內(nèi)禁用深色模式: 可以在Info.plist(全局) 中光羞,設(shè)置 User Interface Style 為 Light绩鸣。
2: 在單個頁面內(nèi)禁用深色模式使用overrideUserInterfaceStyle: self.overrideUserInferfaceStyle = UIUserInterfaceStyleLight。
在單個頁面內(nèi)禁用淺色模式使用overrideUserInterfaceStyle: self.overrideUserInferfaceStyle = UIUserInterfaceStyleDark纱兑。