不適配深色模式 直接在info新加一個欄位 設置值為 適配深色模式 適配深色模式info裡面的那個欄位就不用添加了 但是需要在每個 裡面增加下麵的這個方法 在這個方法里去判斷和更改當前界面所有元素的顏色 我專門做了一個單例,把應用程式中的所有顏色都單獨保存起來 還有兩個方法,分別是把所有的顏色改成與 ...
不適配深色模式
直接在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地址 https://github.com/YouZhiZheShiJingCheng/dark