QMUIDynamicColorProtocol

@protocol QMUIDynamicColorProtocol <NSObject>

@required

/// 获取当前 color 的实际颜色(返回的颜色必定不是 dynamic color)
@property(nonatomic, strong, readonly) UIColor *qmui_rawColor;

/// 标志当前 UIColor 对象是否为动态颜色(由 [UIColor qmui_colorWithThemeProvider:] 创建的颜色,或者 iOS 13 下由 [UIColor colorWithDynamicProvider:]、[UIColor initWithDynamicProvider:] 创建的颜色)
@property(nonatomic, assign, readonly) BOOL qmui_isDynamicColor;

/// 标志当前 UIColor 对象是否为 QMUIThemeColor
@property(nonatomic, assign, readonly) BOOL qmui_isQMUIDynamicColor;

@optional
/// 这方法其实是 iOS 13 新增的 UIDynamicColor 里的私有方法,只要任意 UIColor 的类实现这个方法并返回 YES,就能自动响应 iOS 13 下的 UIUserInterfaceStyle 的切换,这里在 protocol 里声明是为了方便 .m 里调用(否则会因为不存在的 selector 而无法编译)
@property(nonatomic, assign, readonly) BOOL _isDynamic;

@end

Undocumented

  • 获取当前 color 的实际颜色(返回的颜色必定不是 dynamic color)

    Declaration

    Objective-C

    @required
    @property (nonatomic, strong, readonly) UIColor *_Nonnull qmui_rawColor;

    Swift

    var qmui_rawColor: UIColor { get }
  • 标志当前 UIColor 对象是否为动态颜色(由 [UIColor qmui_colorWithThemeProvider:] 创建的颜色,或者 iOS 13 下由 [UIColor colorWithDynamicProvider:]、[UIColor initWithDynamicProvider:] 创建的颜色)

    Declaration

    Objective-C

    @required
    @property (nonatomic, assign, unsafe_unretained, readonly)
        BOOL qmui_isDynamicColor;

    Swift

    var qmui_isDynamicColor: Bool { get }
  • 标志当前 UIColor 对象是否为 QMUIThemeColor

    Declaration

    Objective-C

    @required
    @property (nonatomic, assign, unsafe_unretained, readonly)
        BOOL qmui_isQMUIDynamicColor;

    Swift

    var qmui_isQMUIDynamicColor: Bool { get }
  • 这方法其实是 iOS 13 新增的 UIDynamicColor 里的私有方法,只要任意 UIColor 的类实现这个方法并返回 YES,就能自动响应 iOS 13 下的 UIUserInterfaceStyle 的切换,这里在 protocol 里声明是为了方便 .m 里调用(否则会因为不存在的 selector 而无法编译)

    Declaration

    Objective-C

    @optional
    @property (nonatomic, assign, unsafe_unretained, readonly) BOOL _isDynamic;

    Swift

    optional var _isDynamic: Bool { get }