-
获取当前模式
(Light or Dark)
-
通过
UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark
进行判断 -
示例 -
Objective-C
if (@available(iOS 13.0, *)) { if (UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) { // dark mode } else { // light mode } }
-
示例 -
Swift
if #available(iOS 13.0, *) { if UITraitCollection.current.userInterfaceStyle == UIUserInterfaceStyle.dark { // dark mode } else { // light mode } }
-
-
自定义动态
UIColor
extension UIColor { @objc static func wb_dynamicProvider(lightColor: UIColor, darkColor: UIColor) -> UIColor { if #available(iOS 13.0, *) { let color: UIColor = UIColor.init { (traitCollection: UITraitCollection) -> UIColor in if traitCollection.userInterfaceStyle == UIUserInterfaceStyle.dark { return darkColor } return lightColor } return color } else { return lightColor } } }
-
适配
UIActivityIndicatorView Style
extension UIActivityIndicatorView { @objc static func wb_largeStyle() -> Style { if #available(iOS 13.0, *) { return Style.large } else { return Style.whiteLarge } } @objc static func wb_mediumStyle() -> Style { if #available(iOS 13.0, *) { return Style.medium } else { return Style.gray } } }
-
适配
UIBlurEffectStyle
- (UIBlurEffectStyle)wb_blurEffectStyle { UIBlurEffectStyle style; #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 if (@available(iOS 13.0, *)) { if (UITraitCollection.currentTraitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) { style = UIBlurEffectStyleSystemThinMaterialDark; } else { style = UIBlurEffectStyleSystemThinMaterialLight; } } else #endif { #if __IPHONE_OS_VERSION_MIN_REQUIRED < 130000 style = UIBlurEffectStyleExtraLight; #endif } return style; }
网友评论