BBAToastView.h
5.27 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
//
// BBAToastView.h
// BBAUIKit
//
// Created by zhangyunchao on 2020/7/16.
// Copyright © 2020 Baidu. All rights reserved.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
FOUNDATION_EXPORT NSString * const KBBAToastSaveSuccessBig; // 大号保存成功,适用上图下文
FOUNDATION_EXPORT NSString * const KBBAToastSaveFailBig; // 大号保存失败,适用上图下文
FOUNDATION_EXPORT NSString * const KBBAToastSaveSuccessLittle; // 小号保存成功,适用左图右文
FOUNDATION_EXPORT NSString * const KBBAToastSaveFailLittle; // 小号保存失败,适用左图右文
FOUNDATION_EXPORT NSString * const KBBAToastNightModeOff; // 大号夜间模式关闭,适用上图下文
FOUNDATION_EXPORT NSString * const KBBAToastNightModeOn; // 大号夜间模式开启,适用上图下文
typedef NS_ENUM(NSUInteger, BBAToastActionType) {
BBAToastActionType_Normal, // 正常默认类型
BBAToastActionType_Button, // button强调类型
};
/// Toast展示位置
typedef NS_ENUM(NSUInteger, BBAToastShowPosition) {
BBAToastShowPositionCenter, // 居中展示
BBAToastShowPositionBottom, // 底部展示
};
typedef NS_ENUM(NSUInteger, BBAToastShowDurtion) {
BBAToastShowDurtion_Short = 3,
BBAToastShowDurtion_Medium = 5,
BBAToastShowDurtion_Long = 7,
BBAToastShowDurtion_Longer = 10
};
typedef void (^BBAToastCallbackBlock)(void);
@interface BBAToastInfo : NSObject
@property (nonatomic, strong) UIImage *leftImage; // 图片
@property (nonatomic, strong) UIView *leftCustomView; // 左部自定义视图(和图片互斥)
@property (nonatomic, copy) NSString *title; // 主标题
@property (nonatomic, strong) NSAttributedString *titleAttribute; // 主标题富文本设置
@property (nonatomic, copy) NSString *subTitle; // 副标题
@property (nonatomic, copy) NSString *jumpText; // 跳转区标题
@property (nonatomic, strong) UIColor *jumpTextColor; // 跳转区文案颜色,BBAToastActionType_Normal类型生效
@property (nonatomic, assign) BBAToastActionType actionType; // 跳转类型
@property (nonatomic, copy, nullable) void(^closeAction)(void); // 关闭按钮,可以为空,赋值该属性时右侧会出现关闭按钮
@property (nonatomic, assign) BBAToastShowPosition toastPosition; // toast展示在屏幕位置,只针对单文字 或者 左图右文类型,默认居中
@property (nonatomic, strong) UIView *parentView; // 指定展示toast父View,否则内部默认
@end
@interface BBAToastView : UIControl
/// 文本提示
/// @param message 内容,会限定单行最大宽度,支持最多两行,默认展示3s
+ (void)showToast:(NSString *)message;
/// 文本提示,可设置位置(居中/屏幕底部),展示时长
/// @param message 文本内容
/// @param position 位置
/// @param duration 展示时长
+ (void)showToast:(NSString *)message
position:(BBAToastShowPosition)position
duration:(BBAToastShowDurtion)duration;
/// 垂直排列提示 图片+文案
/// @param image 图片
/// @param message 文案内容
+ (void)showToastInVertical:(UIImage *)image
message:(NSString *)message;
/// 垂直排列提示 图片+文案
/// @param image 图片
/// @param message 文案内容
/// @param hostView 父view, 如果不指定则内部默认
/// @param duration 展示时长
+ (void)showToastInVertical:(UIImage *)image
message:(NSString *)message
hostView:(nullable UIView *)hostView
duration:(BBAToastShowDurtion)duration;
/// 垂直排列提示 自定视图+文案,屏幕居中展示
/// @param customView 自定义视图(内部固定大小)
/// @param message 文案
/// @param hostView 父view, 如果不指定则内部默认
/// @param duration 展示时长
+ (void)showToastCustomInVertical:(UIView *)customView
message:(NSString *)message
hostView:(nullable UIView *)hostView
duration:(BBAToastShowDurtion)duration;
/// 水平方向 图片+文字
/// @param message 文案
/// @param image 图片名
+ (void)showToast:(NSString *)message
image:(UIImage *)image;
/// 水平方向 图片+文字
/// @param message 文案
/// @param image 图片
/// @param position 屏幕中展示位置
/// @param duration 展示时长
+ (void)showToast:(NSString *)message
image:(UIImage *)image
position:(BBAToastShowPosition)position
duration:(BBAToastShowDurtion)duration;
/// 支持复杂配置展示
/// @param info 配置内容
/// @param duration 展示时长
/// @param callback 点击回调
+ (void)showToastInfo:(BBAToastInfo *)info
duration:(BBAToastShowDurtion)duration
callback:(nullable BBAToastCallbackBlock)callback;
/// 在指定 darkmode模式 和 延时时间 下展示toast任务
/// @param mode darkmode标识,设置为nil则无效,内部按照当前mode适配
/// @param duration 此duration使用优先级最高,
/// 最小设置为1s,否则认为该duration无效,走task内接口duration
/// @param taskBlock toast任务block
+ (void)runInMode:(nullable NSString *)mode
duration:(CGFloat)duration
withTask:(dispatch_block_t)taskBlock;
/// 当前是否有展示中的toast
+ (BOOL)isToastOnShowing;
/// 隐藏Toast
+ (void)hiddenToast;
@end
NS_ASSUME_NONNULL_END