BDPWindow.h
1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//
// BDPWindow.h
// BDPWindow
//
// Created by Liu,Xianting on 2021/1/9.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSUInteger, BDPWindowLevelType) {
BDPWindowLevelSplash = 1400, //闪屏
BDPWindowLevelToast = 1300, //toast提醒
BDPWindowLevelAlert = 1200, //弹窗提醒
BDPWindowLevelSuspension = 1100, //悬浮窗(新特性)
BDPWindowLevelStatusBar = 1000, //状态栏
BDPWindowLevelAudioPlayer = 999, //全局音频播放器
BDPWindowLevelNightMask = 1, //夜间模式(临时定为1与现有逻辑一致)
BDPWindowLevelNormal = 0,
};
typedef UIWindowLevel BDPWindowLevel;
@protocol BDPWindowDelegate;
/// 手百通用浮窗 (包括全屏)
/// 可保持展示在主window最上层 (兼容PushVC和PresentVC)
/// 代替UIWindow,使用方式相同,转场相关使用BDPWindowDelegate代替
/// 对齐UIWindow, 通过hidden控制显示和隐藏
@interface BDPWindow : UIView
/// 请将新增的场景添加到 http://agroup.baidu.com/pros/md/article/3655690
/// 没有权限,可联系liuxianting@baidu.com
@property (nonatomic) BDPWindowLevel windowLevel;
/// 事件回调
@property (nonatomic, weak) id<BDPWindowDelegate> delegate;
/// 判断当前是否展示,isShow = !self.hidden && self.alpha > 0.001 && self.window;
@property (nonatomic, assign, readonly) BOOL isShow;
@end
/// BDPWindow 事件回调
@protocol BDPWindowDelegate <NSObject>
@optional;
/// 转屏时回调,用于处理横竖屏适配
/// @param window 浮窗
/// @param size 浮窗父容器大小(全屏)发生变化时的回调
- (void)window:(BDPWindow *)window containerNewSize:(CGSize)size;
/// 浮窗将要显示
- (void)windowWillAppear:(BDPWindow *)window;
/// 浮窗已经显示
- (void)windowDidAppear:(BDPWindow *)window;
/// 浮窗将要消失
- (void)windowWillDisappear:(BDPWindow *)window;
/// 浮窗已经消失
- (void)windowDidDisappear:(BDPWindow *)window;
@end
NS_ASSUME_NONNULL_END