EasyDarkMode
简介
iOS 13 引入了用户界面特性。此功能包含两种用户界面类型,浅色和深色。
此项目是一个开发者工具,可轻松适应 iOS 13 中的用户界面特性。
如果喜欢,请 Star。
示例
CocoaPods 集成
与使用此工具查找您项目中的 Podfile
脚本。
首先,根据您的项目使用的语言选择(Swift
/ Objective-C
)。
其次,根据您是否使用网络图片选择(本地图片
/ 其他)。
然后,如果您使用网络图片,请选择您偏好的下载方法(SDWebImage
/Kingfisher
/自定义下载方式
)。
Podfile 脚本 | Objective-C | Swift | 本地图片 | SDWebImage | Kingfisher | 自定义下载 |
---|---|---|---|---|---|---|
pod 'EasyDarkMode' 或 pod 'EasyDarkMode/Core' |
● | ○ | ● | ○ | ○ | ○ |
pod 'EasyDarkMode/Core-Swift' |
○ | ● | ● | ○ | ○ | ○ |
pod 'EasyDarkMode/SDWebImage' |
● | ○ | ● | ● | ○ | ○ |
pod 'EasyDarkMode/SDWebImage+Swift' |
○ | ● | ● | ● | ○ | ○ |
pod 'EasyDarkMode/Kingfisher' |
○ | ● | ● | ○ | ● | ○ |
pod 'EasyDarkMode/Remote' |
● | ○ | ● | ○ | ○ | ● |
pod 'EasyDarkMode/Remote-Swift' |
○ | ● | ● | ○ | ○ | ● |
如何使用
以不同用户界面创建颜色
- Swift
包含在 pod 'EasyDarkMode/Core-Swift'
import EasyDarkMode
view.backgroundColor = UIColor.dm.color(white:UIColor.black , dark: UIColor.white)
- Objective-C
包含在 pod 'EasyDarkMode/Core'
#import <EasyDarkMode/EasyDarkMode.h>
view.backgroundColor = [UIColor dm_colorWithColorLight:UIColor.grayColor dark:UIColor.whiteColor];
以不同用户界面从本地创建图像
- Swift
包含在 pod 'EasyDarkMode/Core-Swift'
import EasyDarkMode
imageView.image = UIImage.dm.image(name: "check_light", dark: "check_dark")
- Objective-C
包含在 pod 'EasyDarkMode/Core'
#import <EasyDarkMode/EasyDarkMode.h>
imageView.image = [UIImage dm_imageWithNameLight:@"check_light" dark:@""check_dark""];
以不同用户界面从 SDWebImage 创建图像
- Swift
包含在 pod 'EasyDarkMode/SDWebImage+Swift'
import EasyDarkMode
// You should config downloder once before start to download images.
DMDownloadManager.shared.connectWithSdWebImage()
// ...
item.dm.setImage(pathString: "http://img.mp.itc.cn/upload/20160525/73e975795bf94f82baf43315f89a30b1_th.jpg", dark: "http://img.mp.itc.cn/upload/20160525/5d6588b3c928495a9ee0eb2b0b672936_th.jpg", for: UIControl.State.normal)
- Objective-C
包含在 pod 'EasyDarkMode/SDWebImage'
#import <EasyDarkMode/EasyDrakMode.h>
// You should config downloder once before start to download images.
[DMDownloadManager.shared connectWithSdWebImage];
// ...
[button dm_setImagePathStringLight:@"http://img.mp.itc.cn/upload/20160525/73e975795bf94f82baf43315f89a30b1_th.jpg" dark:@"http://img.mp.itc.cn/upload/20160525/5d6588b3c928495a9ee0eb2b0b672936_th.jpg" forState:UIControlStateNnormal];
以不同用户界面从 Kingfisher 创建图像
- Swift
包含在 pod 'EasyDarkMode/Kingfisher'
import EasyDarkMode
// You should config downloder once before start to download images.
DMDownloadManager.shared.connectWithKingfisher()
// ...
item.dm.setImage(pathString: "http://img.mp.itc.cn/upload/20160525/73e975795bf94f82baf43315f89a30b1_th.jpg", dark: "http://img.mp.itc.cn/upload/20160525/5d6588b3c928495a9ee0eb2b0b672936_th.jpg", for: UIControl.State.normal)
使用不同用户界面类型从自定义下载方法创建图像
- Swift
包含在pod 'EasyDarkMode/Remote-Swift'
中
import EasyDarkMode
// You should config downloder once before start to download images.
DMDownloadManager.shared.downloader = { (url, completion) in
// ...
}
// ...
item.dm.setImage(pathString: "http://img.mp.itc.cn/upload/20160525/73e975795bf94f82baf43315f89a30b1_th.jpg", dark: "http://img.mp.itc.cn/upload/20160525/5d6588b3c928495a9ee0eb2b0b672936_th.jpg", for: UIControl.State.normal)
- Objective-C
包含在pod 'EasyDarkMode/Remote'
中
#import <EasyDarkMode/EasyDrakMode.h>
// You should config downloder once before start to download images.
DMDownloadManager.shared.downloader = ^(NSURL * _Nonnull data, DMDownloadHandler _Nonnull completion) {
// ...
}
// ...
[button dm_setImagePathStringLight:@"http://img.mp.itc.cn/upload/20160525/73e975795bf94f82baf43315f89a30b1_th.jpg" dark:@"http://img.mp.itc.cn/upload/20160525/5d6588b3c928495a9ee0eb2b0b672936_th.jpg" forState:UIControlStateNnormal];
特性
-
创建不同用户界面类型UIColor的快捷方法。
-
创建不同用户界面类型UIImage的快捷方法。
-
用Objective-C编写。所有功能都以现代API在Swift中可用。
-
下载远程图像的快捷方法,使用SDWebImage和Kingfisher,并创建不同用户界面类型的UIImage。
-
此代码可在Xcode 9到Xcode 11上运行。
-
支持从iOS 8到iOS 13的各种部署目标版本。
-
我们发现启用
xcassets
中的外观图像集会导致应用程序启动时出现明显滞后。如果您正在使用大型应用程序,手动将图像组合到单个UIImage
对象中的某些方法变通是必要的。
待办事项
[●] 支持UIImage/UIColor
[●] 支持SDWebImage
[●] 支持KingFisher。
[○] 找出支持NSTextAttachment在NSAttributedString中的方法。
[○] 找出支持web图像在NSTextAttachment中的方法。