美文网首页
iOS暗黑模式的适配处理。

iOS暗黑模式的适配处理。

作者: 子小每文 | 来源:发表于2020-06-19 10:49 被阅读0次

    //#import <AppKit/AppKit.h>

    import <UIKit/UIKit.h>

    NS_ASSUME_NONNULL_BEGIN

    @interface UIColor (KGCDarkColorTreatment)

    • (UIColor *)colorWithDarkColorStr:(NSString *)DarkColor LightColor:(NSString *)LightColor;

    /// 自定义色值
    /// @param DarkColor 深色模式下对应的色值
    /// @param LightColor 浅色模式下对应的色值

    • (UIColor *)colorWithDarkColor:(UIColor *)DarkColor LightColor:(UIColor *)LightColor;

    /黑白配置/
    /背景黑白/

    • (UIColor )traitCollectionBackgroundColorDidChange;
      /
      字体黑白*/
    • (UIColor *)traitCollectionFontColorDidChange;

    随手记录,之后会进行不合理的优化,

    import "UIColor+KGCDarkColorTreatment.h"

    @implementation UIColor (KGCDarkColorTreatment)

    /字符串形式的/

    • (UIColor *)colorWithDarkColorStr:(NSString *)DarkColor LightColor:(NSString *)LightColor
      {
      if (@available(iOS 13.0, *)) {
      UIColor *dyColor = [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull trainCollection) {
      if ([trainCollection userInterfaceStyle] == UIUserInterfaceStyleDark) {

    // NSLog(@"默认颜色,白色");
    return [UIColor colorWithHexString:DarkColor];

               }else {
    

    // NSLog(@"默认颜色,黑色");
    return [UIColor colorWithHexString:LightColor];
    }
    }];
    return dyColor;
    } else {
    return [UIColor colorWithHexString:LightColor];
    }
    }

    /背景颜色适配暗黑/
    /黑白调用就行, 动态设置,背景和字体颜色之类的/

    • (UIColor *)traitCollectionBackgroundColorDidChange{

      if (@available(iOS 13.0, *)) {
      return [UIColor systemBackgroundColor];
      }else{
      return [UIColor whiteColor];
      }
      }

    /暗黑字体颜色适配/
    /黑白配置/
    /针对渐变不同变色反向设置/

    • (UIColor *)traitCollectionFontColorDidChange{

      if (@available(iOS 13.0, *)) {
      UIColor *dyColor = [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull trainCollection) {
      if ([trainCollection userInterfaceStyle] == UIUserInterfaceStyleLight) {
      // NSLog(@"555555");
      return [UIColor blackColor];
      }else {
      // NSLog(@"333333");
      return [UIColor whiteColor];
      }
      }];

        return dyColor;
      

      } else {
      return [UIColor blackColor];
      }
      }

    pragma mark === /自定义色值/

    • (UIColor *)colorWithDarkColor:(UIColor *)DarkColor LightColor:(UIColor *)LightColor
      {
      if (@available(iOS 13.0, *))
      {
      return [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull trait) {
      return trait.userInterfaceStyle == UIUserInterfaceStyleDark ? DarkColor : LightColor;
      }];
      }
      return LightColor;
      }

    相关文章

      网友评论

          本文标题:iOS暗黑模式的适配处理。

          本文链接:https://www.haomeiwen.com/subject/wyhvxktx.html