全部产品
云市场
云游戏

弱提示组件

更新时间:2019-09-26 18:39:48

  • AUToast 为 mPaaS 自定义 Toast 控件 。
  • AUToast 迁移自 APCommonUI 的 APToast,请使用最新的 AUToast。

该组件主要包含两类 Toast:

  • 普通 Toast
  • 模态 Toast

模态 Toast 比普通 Toast 多了透明背景层,用户在背景层覆盖区域不可点击。

效果图

接口说明

  1. // log 输出函数声明,由外部设置
  2. typedef void(*AUToastLogFunc)(NSString *tag, NSString *format, ...);
  3. extern AUToastLogFunc g_ToastExternLogFunc; // log 输出函数全局变量,由外部设置
  4. #define AUToastLog(fmt, ...) {if(g_ToastExternLogFunc)g_ToastExternLogFunc(@"@AUToast",fmt,##__VA_ARGS__);}
  5. #define AUToast_Default_Duration 2.0 // AUToast 默认展示时间
  6. #define AUToast_Strong_Duration 1.5 // AUToast 强提示展示时长
  7. #define AUToast_Weak_Duration 1.0 // AUToast 弱提示展示时长
  8. /**
  9. * 添加新的 toastIcon 时,请向后添加,不要在中间插入,否则业务使用会有问题
  10. */
  11. typedef enum{
  12. AUToastIconNone = 0, // 无图标
  13. AUToastIconSuccess, // 成功图标
  14. AUToastIconFailure, // 失败图标
  15. AUToastIconLoading, // 加载图标
  16. AUToastIconNetFailure, // 网络失败
  17. AUToastIconSecurityScan,// 安全扫描
  18. AUToastIconNetError, // 网络错误,完全无法连接
  19. AUToastIconProgress, // 加载图标,显示加载进度
  20. AUToastIconAlert, // 警示图标
  21. } AUToastIcon;
  22. /**
  23. * Toast控件
  24. */
  25. @interface AUToast : UIView
  26. @property (nonatomic, assign) CGFloat xOffset; // 设置相对父视图中心位置 X 轴方向的偏移量
  27. @property (nonatomic, assign) CGFloat yOffset; // 设置相对父视图中心位置 Y 轴方向的偏移量
  28. /*
  29. * 模态显示提示,此时屏幕不响应用户操作(显示在 keywindow 上面),
  30. * 需调用 dismissToast 方法使 Toast 消失
  31. *
  32. * @param text 显示文本,默认为 loading 加载
  33. * @param logTag 日志标识
  34. *
  35. * @return 返回显示的 Toast 对象
  36. */
  37. + (AUToast *)presentToastWithText:(NSString *)text
  38. logTag:(NSString*)logTag;
  39. /**
  40. * 显示 Toast,需调用 dismissToast 方法使 Toast 消失
  41. *
  42. * @param superview 父视图
  43. * @param text 显示文本
  44. * @param logTag 日志标识
  45. *
  46. * @return 返回显示的 Toast 对象
  47. */
  48. + (AUToast *)presentToastWithin:(UIView *)superview
  49. text:(NSString *)text
  50. logTag:(NSString*)logTag;
  51. /**
  52. * 显示 Toast,需调用 dismissToast 方法使 Toast 消失
  53. *
  54. * @param superview 父视图
  55. * @param icon 图标类型
  56. * @param text 显示文本
  57. * @param logTag 日志标识
  58. *
  59. * @return 返回显示的 Toast 对象
  60. */
  61. + (AUToast *)presentToastWithin:(UIView *)superview
  62. withIcon:(AUToastIcon)icon
  63. text:(NSString *)text
  64. logTag:(NSString*)logTag;
  65. /**
  66. * 显示 Toast
  67. *
  68. * @param superview 父视图
  69. * @param icon 图标类型
  70. * @param text 显示文本
  71. * @param duration 显示时长
  72. * @param logTag 日志标识
  73. *
  74. * @return 返回显示的 Toast 对象
  75. */
  76. + (AUToast *)presentToastWithin:(UIView *)superview
  77. withIcon:(AUToastIcon)icon
  78. text:(NSString *)text
  79. duration:(NSTimeInterval)duration
  80. logTag:(NSString*)logTag;
  81. /**
  82. * 显示 Toast
  83. *
  84. * @param superview 要在其中显示 Toast 的视图
  85. * @param icon 图标类型
  86. * @param text 显示文本
  87. * @param duration 显示时长
  88. * @param logTag 日志标识
  89. * @param completion Toast 自动消失后的回调
  90. *
  91. * @return 返回显示的 Toast 对象
  92. */
  93. + (AUToast *)presentToastWithin:(UIView *)superview
  94. withIcon:(AUToastIcon)icon
  95. text:(NSString *)text
  96. duration:(NSTimeInterval)duration
  97. logTag:(NSString*)logTag
  98. completion:(void (^)())completion;
  99. /**
  100. * 显示 Toast
  101. *
  102. * @param superview 要在其中显示 Toast 的视图
  103. * @param icon 图标类型
  104. * @param text 显示文本
  105. * @param duration 显示时长
  106. * @param delay 延迟显示时长
  107. * @param logTag 日志标识
  108. * @param completion Toast 自动消失后的回调
  109. *
  110. * @return 返回显示的 Toast 对象
  111. */
  112. + (AUToast *)presentToastWithin:(UIView *)superview
  113. withIcon:(AUToastIcon)icon
  114. text:(NSString *)text
  115. duration:(NSTimeInterval)duration
  116. delay:(NSTimeInterval)delay
  117. logTag:(NSString*)logTag
  118. completion:(void (^)())completion;
  119. /*
  120. * 模态 toast,需调用 dismissToast 方法使 Toast 消失
  121. * 跟普通的 toast 区别是,会添加一个透明的背景层,防止用户屏幕点击
  122. *
  123. * @param superview 父视图
  124. * @param text 显示文本
  125. * @param logTag 日志标识
  126. *
  127. * @return 返回显示的Toast对象
  128. */
  129. + (AUToast *)presentModelToastWithin:(UIView *)superview
  130. text:(NSString *)text
  131. logTag:(NSString*)logTag;
  132. /**
  133. * 显示模态 Toast
  134. * 跟普通的 toast 区别是,会添加一个透明的背景层,防止用户屏幕点击
  135. *
  136. * @param superview 要在其中显示 Toast 的视图
  137. * @param icon 图标类型
  138. * @param text 显示文本
  139. * @param duration 显示时长
  140. * @param logTag 日志标识
  141. * @param completion Toast 自动消失后的回调
  142. *
  143. * @return 返回显示的 Toast 对象
  144. */
  145. + (AUToast *)presentModalToastWithin:(UIView *)superview
  146. withIcon:(AUToastIcon)icon
  147. text:(NSString *)text
  148. duration:(NSTimeInterval)duration
  149. logTag:(NSString*)logTag
  150. completion:(void (^)())completion;
  151. /**
  152. * 显示模态 Toast
  153. * 跟普通的 toast 区别是,会添加一个透明的背景层,防止用户屏幕点击
  154. *
  155. * @param superview 要在其中显示 Toast 的视图
  156. * @param icon 图标类型
  157. * @param text 显示文本
  158. * @param duration 显示时长
  159. * @param delay 延迟显示时长
  160. * @param logTag 日志标识
  161. * @param completion Toast 自动消失后的回调
  162. *
  163. * @return 返回显示的 Toast 对象
  164. */
  165. + (AUToast *)presentModalToastWithin:(UIView *)superview
  166. withIcon:(AUToastIcon)icon
  167. text:(NSString *)text
  168. duration:(NSTimeInterval)duration
  169. delay:(NSTimeInterval)delay
  170. logTag:(NSString*)logTag
  171. completion:(void (^)())completion;
  172. /*
  173. * 使 toast 消失
  174. */
  175. - (void)dismissToast;
  176. /**
  177. * 设置进度的前缀文本,如果不设置,默认为“加载数据”
  178. * 当 toast 类型为 AUToastIconProgress 时设置有效,否则忽略
  179. *
  180. * @param prefix 文本
  181. */
  182. - (void)setProgressPrefix:(NSString*)prefix;
  183. /**
  184. * 显示当前加载数据的进度百分比
  185. * 当 toast 类型为 AUToastIconProgress 时设置有效,否则忽略
  186. *
  187. * @param value 当前已加载的数据,范围为<0.0,1.0>
  188. *
  189. */
  190. - (void)setProgressText:(float)value;
  191. @end

代码示例

  1. [AUToast presentToastWithin:self.view withIcon:AUToastIconNetFailure text:@"系统繁忙" logTag:@"demo"];
  2. [AUToast presentToastWithin:self.view withIcon:AUToastIconSuccess text:@"成功提示" logTag:@"demo"];
  3. [AUToast presentToastWithin:self.view withIcon:AUToastIconFailure text:@"失败提示" logTag:@"demo"];
  4. [AUToast presentToastWithin:self.view withIcon:AUToastIconAlert text:@"警示提示" logTag:@"demo"];
  5. // 加载中
  6. [AUToast presentToastWithin:self.view withIcon:AUToastIconLoading text:nil logTag:@"demo"];
  7. // 显示进度场景
  8. AUToast *toast = [AUToast presentToastWithin:self.view withIcon:AUToastIconProgress text:@"加载中" logTag:@"demo"];
  9. toast.origin = point;
  10. [toast setProgressPrefix:@"~~~"];
  11. [toast setProgressText:0.5];
  12. // 模态Toast
  13. [AUToast presentModalToastWithin:weakSelf.view withIcon:AUToastIconLoading text:@"模态toast,最长文案有这么多,算不算多啊(三秒后消失)" duration:3 logTag:@"demo" completion:NULL];
  14. [AUToast presentModalToastWithin:weakSelf.view withIcon:AUToastIconLoading text:@"模态toast,最长文案有这么多,算不算多啊(三秒后消失)" duration:3 delay:2 logTag:@"demo" completion:NULL];