这个没啥好说的,直接两个宏搞定,传参是rgb
#define yzColor(x,y,z) [UIColor colorWithRed: x / 255.0 green:y / 255.0 blue: z /255.0 alpha:1.0]
#define yzNeedDarkColor(x,y,z,m,n,q) \
({\
UIColor * color;\
if (@available(iOS 13.0, *)){\
color = [UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull trainCollection) {\
if ([trainCollection userInterfaceStyle] == UIUserInterfaceStyleLight){\
return yzColor(x,y,z);\
}else{\
return yzColor(m,n,q);}\
}];\
}else{\
color = yzColor(x,y,z);\
};\
(color);\
})\
使用时候,x,y,z传入Dark模式下的rgb,m,n,q传入默认和Light模式下的r,g,b即可
当然还有其他比较好的实现方式,我看有一篇是用plist文件实现的记录一下https://www.jianshu.com/p/baca47fd722c
网友评论