不適配深色模式
直接在info新加一個欄位
User Interface Style
設定值為
Light
適配深色模式
適配深色模式info里面的那個欄位就不用添加了
但是需要在每個UIWindow,UIViewController,UIView里面增加下面的這個方法
-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection
在這個方法里去判斷和更改當前界面所有元素的顏色
我專門做了一個單例,把應用程式中的所有顏色都單獨保存起來
還有兩個方法,分別是把所有的顏色改成與之對應淺色或深色
其實就是一個Color,淺色是一種色值,深色是另外一種色值,一個應用程式可以定義多個Color
應用程式所有的顏色都從這個單例上取
到時候調一下單例只需要把界面重繪一下就行了
-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection
{
[super traitCollectionDidChange: previousTraitCollection];
if (@available(iOS 13.0, *))
{
if(UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark)
{
[[Color darkColor] setDarkColorArray];
LRLog(@"暗黑模式");
}
else
{
[[Color darkColor] setBrightColorArray];
LRLog(@"正常模式");
}
UIWindow* window = [[[UIApplication sharedApplication] delegate] window];
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[Color darkColor].dataColor2,NSFontAttributeName:[UIFont systemFontOfSize:18]}];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:[Color darkColor].backColor] forBarMetrics:(UIBarMetricsDefault)];
[self.navigationController.navigationBar setShadowImage:[UIImage imageWithColor:[Color darkColor].backColor]];
[self.navigationController.navigationBar setBarTintColor:[Color darkColor].backColor];
window.backgroundColor=[Color darkColor].backColor;
self.view.backgroundColor=[Color darkColor].backColor;
}
}
接下來就是圖示的適配了
圖示的話是需要準備兩套的
一套白色的一套黑色的
或者準備一套用的時候自己把顏色給改掉
一套黑的一套白的按照以下多加個圖片就行了

一套圖片看Demo
Demo地址 https://github.com/YouZhiZheShiJingCheng/dark
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/4174.html
標籤:iOS
上一篇:iOS Share Extension 自定義分享界面
下一篇:iOS-關于GCD信號量那些事兒
