先放demo地址:github.com/KeWangKW/99…
- 基于swift5实现,也适用于OC ,demo中有简单的使用示例
- kScreenSize、kScreenWidth、kScreenHeight、kNavigationBarHeight、kStatusBarHeight、kHomeIndicatorHeight、kTabBarHeight
- kAdapt基于iPhone6适配屏幕尺寸 / swift中 使用后缀操作符:postfix operator 处理尺寸适配 【示例1:
CGRect(x: 10~, y: 20~, width: 100~, height: 100~)
】 【示例2:CGRect(x: kAdapt(10), y: kAdapt(20), width: kAdapt(100), height: kAdapt(100))
】,示例1精简多了,当然在OC中还是需要使用封装的kAdapt(OC不推荐使用自定义操作符(包括~
),原因如下 定义操作符降低代码可读性。自定义操作符增加了代码复杂度,使代码更难调试和维护,自定义操作符可能与其他开发者的代码产生冲突,导致代码无法编译) - 以上高度具体使用不再赘述
- 以下为UIColorExt 扩展 的使用
前言
-
暗黑模式是在iOS13推出的,
-
如果你的项目最低支持iOS11,那么推荐Assets添加适配暗黑模式的色值 注意:只在iOS11后支持使用
-
图片适配,需要在Assets中---选中图片---打开右边栏---设置appearance属性---添加不同的图片,代码中正常使用即可,会根据当前系统状态切换展示图片
-
当前拓展时根据系统来切换输出色值的,如果仅需要设置部分页面适配暗黑模式,需要先全局关闭
window?.overrideUserInterfaceStyle = .light
或者在info.plist中设置UIUserInterfaceStyle = Light
,然后在需要适配暗黑模式的页面中设置self.overrideUserInterfaceStyle = .light
-
如果想强制设置某个页面为暗黑模式
self.overrideUserInterfaceStyle = .dark
UIColorExt
-
- 在UIColorExt.swift 拓展文件中定义常用色值
case Title
Title 为名称 -
- 设置Light、dark 色值
case .title: return Style(light: 0x1A1919, dark: 0xFFFFFF)
设置对应色值,如果项目不用适配暗黑模式或者当前颜色不用设置暗黑色值,无需设置dark -
- Swift OC 使用
Color = .KW_L(.title)
Color = [UIColor KW_L:CustomTitle];
KW_L 只使用Light色值Color = .KW_LD(.title)
Color = [UIColor KW_LD:CustomTitle];
KW_LD 适配暗黑模式,根据系统是否是暗黑模式切换颜色,如果当前Title未设置Dark色值,则在暗黑模式下也返回Light色值Color = .init(light: UIColor.white, dark: UIColor.black)
Color = [[UIColor alloc]initWithLight:UIColor.whiteColor dark:UIColor.blackColor];
Color = .init(light: UIColor.init(hexString: "0x000000"), dark: UIColor.init(hexString: "0xFFFFFF"))
Color = [[UIColor alloc]initWithLight:[UIColor HexColorWithStr:@"0x000000" alpha:1] dark:[UIColor HexColorWithStr:@"0xFFFFFF" alpha:1]]
使用适配暗黑色值,但没有在扩展类定义