今天,我一直跟进的app对接人突然截图给我,说出现bug了。当时我心里有一万个草泥马路过,当时我正在学校参加毕业典礼。好了不多说,经过网上的查证发现适配暗黑模式还是非常简单的。主要分为三方面:背景色、字体色以及图片颜色的适配。在参考的过程中也不要照本宣科,根据自己的实际情况来。
if (@available(iOS 13.0, *)) {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
NSLog(@"暗黑模式qwe");
[leftButton setImage:[UIImage imageNamed:@"CHXIM.bundle/leftwhite.png"] forState:UIControlStateNormal];
}else{
NSLog(@"不是暗黑模式qwe");
[leftButton setImage:[UIImage imageNamed:@"CHXIM.bundle/left.png"] forState:UIControlStateNormal];
}
}else{
NSLog(@"不是iOS13 所以不需要暗黑模式");
[leftButton setImage:[UIImage imageNamed:@"CHXIM.bundle/left.png"] forState:UIControlStateNormal];
}
-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
NSLog(@"traitCollectionDidChange");
if (@available(iOS 13.0, *)) {
//创建动态 bgColor
UIColor *bgColor = [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull traitCollection) {
if (traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
NSLog(@"暗黑模式");
return [UIColor blackColor];
} else {
NSLog(@"不是暗黑模式");
return [UIColor colorWithRed:237/255.0 green:237/255.0 blue:237/255.0 alpha:1.0];
}
}];
self.mainTableView.backgroundColor=bgColor;
self.navigationController.navigationBar.backgroundColor=bgColor;
self.forSearchTableView.backgroundColor=bgColor;
} else {
NSLog(@"不是iOS13 所以不需要暗黑模式");
self.mainTableView.backgroundColor = [UIColor colorWithRed:237/255.0 green:237/255.0 blue:237/255.0 alpha:1.0];
self.forSearchTableView.backgroundColor = [UIColor colorWithRed:237/255.0 green:237/255.0 blue:237/255.0 alpha:1.0];
}
}
此俩种方法均可,根据自己的需求挑选!!!