AUToast 为 mPaaS 自定义 Toast 控件 。AUToast 迁移自 APCommonUI 的 APToast,请使用 AUToast。
该组件主要包含两类 Toast:
普通 Toast
模态 Toast
模态 Toast 比普通 Toast 多了透明背景层,用户在背景层覆盖区域不可点击。
效果图
接口说明
// log 输出函数声明,由外部设置
typedef void(*AUToastLogFunc)(NSString *tag, NSString *format, ...);
extern AUToastLogFunc g_ToastExternLogFunc; // log 输出函数全局变量,由外部设置
#define AUToastLog(fmt, ...) {if(g_ToastExternLogFunc)g_ToastExternLogFunc(@"@AUToast",fmt,##__VA_ARGS__);}
#define AUToast_Default_Duration 2.0 // AUToast 默认展示时间
#define AUToast_Strong_Duration 1.5 // AUToast 强提示展示时长
#define AUToast_Weak_Duration 1.0 // AUToast 弱提示展示时长
/**
* 添加新的 toastIcon 时,请向后添加,不要在中间插入,否则业务使用会有问题
*/
typedef enum{
AUToastIconNone = 0, // 无图标
AUToastIconSuccess, // 成功图标
AUToastIconFailure, // 失败图标
AUToastIconLoading, // 加载图标
AUToastIconNetFailure, // 网络失败
AUToastIconSecurityScan,// 安全扫描
AUToastIconNetError, // 网络错误,完全无法连接
AUToastIconProgress, // 加载图标,显示加载进度
AUToastIconAlert, // 警示图标
} AUToastIcon;
/**
* Toast 控件
*/
@interface AUToast : UIView
@property (nonatomic, assign) CGFloat xOffset; // 设置相对父视图中心位置 X 轴方向的偏移量
@property (nonatomic, assign) CGFloat yOffset; // 设置相对父视图中心位置 Y 轴方向的偏移量
/*
* 模态显示提示,此时屏幕不响应用户操作(显示在 keywindow 上面),
* 需调用 dismissToast 方法使 Toast 消失
*
* @param text 显示文本,默认为 loading 加载
* @param logTag 日志标识
*
* @return 返回显示的 Toast 对象
*/
+ (AUToast *)presentToastWithText:(NSString *)text
logTag:(NSString*)logTag;
/**
* 显示 Toast,需调用 dismissToast 方法使 Toast 消失
*
* @param superview 父视图
* @param text 显示文本
* @param logTag 日志标识
*
* @return 返回显示的 Toast 对象
*/
+ (AUToast *)presentToastWithin:(UIView *)superview
text:(NSString *)text
logTag:(NSString*)logTag;
/**
* 显示 Toast,需调用 dismissToast 方法使 Toast 消失
*
* @param superview 父视图
* @param icon 图标类型
* @param text 显示文本
* @param logTag 日志标识
*
* @return 返回显示的 Toast 对象
*/
+ (AUToast *)presentToastWithin:(UIView *)superview
withIcon:(AUToastIcon)icon
text:(NSString *)text
logTag:(NSString*)logTag;
/**
* 显示 Toast
*
* @param superview 父视图
* @param icon 图标类型
* @param text 显示文本
* @param duration 显示时长
* @param logTag 日志标识
*
* @return 返回显示的 Toast 对象
*/
+ (AUToast *)presentToastWithin:(UIView *)superview
withIcon:(AUToastIcon)icon
text:(NSString *)text
duration:(NSTimeInterval)duration
logTag:(NSString*)logTag;
/**
* 显示 Toast
*
* @param superview 要在其中显示 Toast 的视图
* @param icon 图标类型
* @param text 显示文本
* @param duration 显示时长
* @param logTag 日志标识
* @param completion Toast 自动消失后的回调
*
* @return 返回显示的 Toast 对象
*/
+ (AUToast *)presentToastWithin:(UIView *)superview
withIcon:(AUToastIcon)icon
text:(NSString *)text
duration:(NSTimeInterval)duration
logTag:(NSString*)logTag
completion:(void (^)())completion;
/**
* 显示 Toast
*
* @param superview 要在其中显示 Toast 的视图
* @param icon 图标类型
* @param text 显示文本
* @param duration 显示时长
* @param delay 延迟显示时长
* @param logTag 日志标识
* @param completion Toast 自动消失后的回调
*
* @return 返回显示的 Toast 对象
*/
+ (AUToast *)presentToastWithin:(UIView *)superview
withIcon:(AUToastIcon)icon
text:(NSString *)text
duration:(NSTimeInterval)duration
delay:(NSTimeInterval)delay
logTag:(NSString*)logTag
completion:(void (^)())completion;
/*
* 模态 toast,需调用 dismissToast 方法使 Toast 消失
* 跟普通的 toast 区别是,会添加一个透明的背景层,防止用户屏幕点击
*
* @param superview 父视图
* @param text 显示文本
* @param logTag 日志标识
*
* @return 返回显示的 Toast 对象
*/
+ (AUToast *)presentModelToastWithin:(UIView *)superview
text:(NSString *)text
logTag:(NSString*)logTag;
/**
* 显示模态 Toast
* 跟普通的 toast 区别是,会添加一个透明的背景层,防止用户屏幕点击
*
* @param superview 要在其中显示 Toast 的视图
* @param icon 图标类型
* @param text 显示文本
* @param duration 显示时长
* @param logTag 日志标识
* @param completion Toast 自动消失后的回调
*
* @return 返回显示的 Toast 对象
*/
+ (AUToast *)presentModalToastWithin:(UIView *)superview
withIcon:(AUToastIcon)icon
text:(NSString *)text
duration:(NSTimeInterval)duration
logTag:(NSString*)logTag
completion:(void (^)())completion;
/**
* 显示模态 Toast
* 跟普通的 toast 区别是,会添加一个透明的背景层,防止用户屏幕点击
*
* @param superview 要在其中显示 Toast 的视图
* @param icon 图标类型
* @param text 显示文本
* @param duration 显示时长
* @param delay 延迟显示时长
* @param logTag 日志标识
* @param completion Toast 自动消失后的回调
*
* @return 返回显示的 Toast 对象
*/
+ (AUToast *)presentModalToastWithin:(UIView *)superview
withIcon:(AUToastIcon)icon
text:(NSString *)text
duration:(NSTimeInterval)duration
delay:(NSTimeInterval)delay
logTag:(NSString*)logTag
completion:(void (^)())completion;
/*
* 使 toast 消失
*/
- (void)dismissToast;
/**
* 设置进度的前缀文本,如果不设置,默认为“加载数据”
* 当 toast 类型为 AUToastIconProgress 时设置有效,否则忽略
*
* @param prefix 文本
*/
- (void)setProgressPrefix:(NSString*)prefix;
/**
* 显示当前加载数据的进度百分比
* 当 toast 类型为 AUToastIconProgress 时设置有效,否则忽略
*
* @param value 当前已加载的数据,范围为 <0.0,1.0>
*
*/
- (void)setProgressText:(float)value;
@end
代码示例
[AUToast presentToastWithin:self.view withIcon:AUToastIconNetFailure text:@"系统繁忙" logTag:@"demo"];
[AUToast presentToastWithin:self.view withIcon:AUToastIconSuccess text:@"成功提示" logTag:@"demo"];
[AUToast presentToastWithin:self.view withIcon:AUToastIconFailure text:@"失败提示" logTag:@"demo"];
[AUToast presentToastWithin:self.view withIcon:AUToastIconAlert text:@"警示提示" logTag:@"demo"];
// 加载中
[AUToast presentToastWithin:self.view withIcon:AUToastIconLoading text:nil logTag:@"demo"];
// 显示进度场景
AUToast *toast = [AUToast presentToastWithin:self.view withIcon:AUToastIconProgress text:@"加载中" logTag:@"demo"];
toast.origin = point;
[toast setProgressPrefix:@"~~~"];
[toast setProgressText:0.5];
// 模态 Toast
[AUToast presentModalToastWithin:weakSelf.view withIcon:AUToastIconLoading text:@"模态toast,最长文案有这么多,算不算多啊(三秒后消失)" duration:3 logTag:@"demo" completion:NULL];
[AUToast presentModalToastWithin:weakSelf.view withIcon:AUToastIconLoading text:@"模态toast,最长文案有这么多,算不算多啊(三秒后消失)" duration:3 delay:2 logTag:@"demo" completion:NULL];
文档内容是否对您有帮助?