cdts/xdts-ios 3/TreeHole/CYHResetCode/CYH/QMUIKit/QMUIComponents/QMUITheme/UIImage+QMUITheme.h

82 lines
4.5 KiB
C
Raw Permalink Normal View History

2023-07-27 09:20:00 +08:00
/**
* Tencent is pleased to support the open source community by making QMUI_iOS available.
* Copyright (C) 2016-2021 THL A29 Limited, a Tencent company. All rights reserved.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
* http://opensource.org/licenses/MIT
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
*/
//
// UIImage+QMUITheme.h
// QMUIKit
//
// Created by MoLice on 2019/J/16.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class QMUIThemeManager;
@protocol QMUIDynamicImageProtocol <NSObject>
@required
/// 获取当前 image 的标记名称,仅对 QMUIThemeImage 有效,其他 class 返回 nil。
@property(nonatomic, copy, readonly) NSString *qmui_name;
/// 获取当前 UIImage 的实际图片(返回的图片必定不是 dynamic image
@property(nonatomic, strong, readonly) UIImage *qmui_rawImage;
/// 标志当前 UIImage 对象是否为动态图片(由 [UIImage qmui_imageWithThemeProvider:] 创建的颜色
@property(nonatomic, assign, readonly) BOOL qmui_isDynamicImage;
@end
@interface UIImage (QMUITheme) <QMUIDynamicImageProtocol>
/**
image 使 QMUIThemeManager
@param provider image 使 provider image
@return provider
*/
+ (UIImage *)qmui_imageWithThemeProvider:(UIImage *(^)(__kindof QMUIThemeManager *manager, __kindof NSObject<NSCopying> * _Nullable identifier, __kindof NSObject * _Nullable theme))provider;
/**
image name 使 QMUIThemeManager
@param name image nil
@param provider image 使 provider image
@return provider
*/
+ (UIImage *)qmui_imageWithName:(NSString * _Nullable)name
themeProvider:(UIImage *(^)(__kindof QMUIThemeManager *manager, __kindof NSObject<NSCopying> * _Nullable identifier, __kindof NSObject * _Nullable theme))provider;
/**
image 使 QMUIThemeManager name
@param managerName themeManager name
@param provider image 使 provider image
@return provider
*/
+ (UIImage *)qmui_imageWithThemeManagerName:(__kindof NSObject<NSCopying> *)managerName
provider:(UIImage *(^)(__kindof QMUIThemeManager *manager, __kindof NSObject<NSCopying> * _Nullable identifier, __kindof NSObject * _Nullable theme))provider;
/**
image name 使 QMUIThemeManager name
@param name image nil
@param managerName themeManager name
@param provider image 使 provider image
@return provider
*/
+ (UIImage *)qmui_imageWithName:(NSString * _Nullable)name
themeManagerName:(__kindof NSObject<NSCopying> *)managerName
provider:(UIImage *(^)(__kindof QMUIThemeManager *manager, __kindof NSObject<NSCopying> * _Nullable identifier, __kindof NSObject * _Nullable theme))provider;
/**
QMUIThemeImage UIImage (QMUI) 使 hook UIImage (QMUITheme) +load hook 使 [UIImage qmui_imageWithTintColor:dynamicColor] image theme
*/
@property(class, nonatomic, assign) BOOL qmui_generatorSupportsDynamicColor;
@end
NS_ASSUME_NONNULL_END