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

77 lines
4.6 KiB
C
Raw 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.
*/
//
// UIVisualEffect+QMUITheme.h
// QMUIKit
//
// Created by MoLice on 2019/7/20.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@class QMUIThemeManager;
@protocol QMUIDynamicEffectProtocol <NSObject>
@required
/// 获取当前 UIVisualEffect 的标记名称,仅对 QMUIThemeVisualEffect 有效,其他 class 返回 nil。
@property(nonatomic, copy, readonly) NSString *qmui_name;
/// 获取当前 UIVisualEffect 的实际 effect返回的 effect 必定不是 dynamic image
@property(nonatomic, strong, readonly) __kindof UIVisualEffect *qmui_rawEffect;
/// 标志当前 UIVisualEffect 对象是否为动态 effect由 [UIVisualEffect qmui_effectWithThemeProvider:] 创建的 effect
@property(nonatomic, assign, readonly) BOOL qmui_isDynamicEffect;
@end
@interface UIVisualEffect (QMUITheme) <QMUIDynamicEffectProtocol>
/**
UIVisualEffect 使 QMUIThemeManager effect
@param provider UIVisualEffect 使 provider effect block
@return UIVisualEffect 使 effect
*/
+ (UIVisualEffect *)qmui_effectWithThemeProvider:(UIVisualEffect *(^)(__kindof QMUIThemeManager *manager, __kindof NSObject<NSCopying> * _Nullable identifier, __kindof NSObject * _Nullable theme))provider;
/**
UIVisualEffect name 使 QMUIThemeManager effect
@param name UIVisualEffect nil
@param provider UIVisualEffect 使 provider effect block
@return UIVisualEffect 使 effect
*/
+ (UIVisualEffect *)qmui_effectWithName:(NSString * _Nullable)name
themeProvider:(UIVisualEffect *(^)(__kindof QMUIThemeManager *manager, __kindof NSObject<NSCopying> * _Nullable identifier, __kindof NSObject * _Nullable theme))provider;
/**
UIVisualEffect 使 QMUIThemeManager name effect
@param managerName themeManager name
@param provider UIVisualEffect 使 provider effect block
@return UIVisualEffect 使 effect
*/
+ (UIVisualEffect *)qmui_effectWithThemeManagerName:(__kindof NSObject<NSCopying> *)managerName
provider:(UIVisualEffect *(^)(__kindof QMUIThemeManager *manager, __kindof NSObject<NSCopying> * _Nullable identifier, __kindof NSObject * _Nullable theme))provider;
/**
UIVisualEffect name 使 QMUIThemeManager name effect
@param name UIVisualEffect nil
@param managerName themeManager name
@param provider UIVisualEffect 使 provider effect block
@return UIVisualEffect 使 effect
*/
+ (UIVisualEffect *)qmui_effectWithName:(NSString * _Nullable)name
themeManagerName:(__kindof NSObject<NSCopying> *)managerName
provider:(UIVisualEffect *(^)(__kindof QMUIThemeManager *manager, __kindof NSObject<NSCopying> * _Nullable identifier, __kindof NSObject * _Nullable theme))provider;
@end
NS_ASSUME_NONNULL_END