IOS13 暗黑模式适配

今天,我一直跟进的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];
    }
}

此俩种方法均可,根据自己的需求挑选!!!

谢谢!!!

你可能感兴趣的:(ios,objective-c,xcode)