MBProgressHUD提示框官网地址:https://github.com/jdg/MBProgressHUD
官网里已经提供了足够多的例子供我们使用,但在实现开发中,我们用到的只是其中的一小部分而已。为了使用更方便,下面对它进行扩展(Category)
MBProgressHUD+NJ.h
#import "MBProgressHUD.h"
@interface MBProgressHUD (NJ)
+ (void)showSuccess:(NSString *)success;
+ (void)showSuccess:(NSString *)success toView:(UIView *)view;
+ (void)showError:(NSString *)error;
+ (void)showError:(NSString *)error toView:(UIView *)view;
+ (MBProgressHUD *)showMessage:(NSString *)message;
+ (MBProgressHUD *)showMessage:(NSString *)message toView:(UIView *)view;
+ (void)hideHUD;
+ (void)hideHUDForView:(UIView *)view;
@end
MBProgressHUD+NJ.m
#import "MBProgressHUD+NJ.h"
@implementation MBProgressHUD (NJ)
/**
* 显示信息
*
* @param text 信息内容
* @param icon 图标
* @param view 显示的视图
*/
+ (void)show:(NSString *)text icon:(NSString *)icon view:(UIView *)view
{
if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
// 快速显示一个提示信息
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
hud.labelText = text;
// 设置图片
hud.customView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"MBProgressHUD.bundle/%@", icon]]];
// 再设置模式
hud.mode = MBProgressHUDModeCustomView;
// 隐藏时候从父控件中移除
hud.removeFromSuperViewOnHide = YES;
// 1秒之后再消失
[hud hide:YES afterDelay:0.7];
}
/**
* 显示成功信息
*
* @param success 信息内容
*/
+ (void)showSuccess:(NSString *)success
{
[self showSuccess:success toView:nil];
}
/**
* 显示成功信息
*
* @param success 信息内容
* @param view 显示信息的视图
*/
+ (void)showSuccess:(NSString *)success toView:(UIView *)view
{
[self show:success icon:@"success.png" view:view];
}
/**
* 显示错误信息
*
*/
+ (void)showError:(NSString *)error
{
[self showError:error toView:nil];
}
/**
* 显示错误信息
*
* @param error 错误信息内容
* @param view 需要显示信息的视图
*/
+ (void)showError:(NSString *)error toView:(UIView *)view{
[self show:error icon:@"error.png" view:view];
}
/**
* 显示错误信息
*
* @param message 信息内容
*
* @return 直接返回一个MBProgressHUD,需要手动关闭
*/
+ (MBProgressHUD *)showMessage:(NSString *)message
{
return [self showMessage:message toView:nil];
}
/**
* 显示一些信息
*
* @param message 信息内容
* @param view 需要显示信息的视图
*
* @return 直接返回一个MBProgressHUD,需要手动关闭
*/
+ (MBProgressHUD *)showMessage:(NSString *)message toView:(UIView *)view {
if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
// 快速显示一个提示信息
MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];
hud.labelText = message;
// 隐藏时候从父控件中移除
hud.removeFromSuperViewOnHide = YES;
// YES代表需要蒙版效果
hud.dimBackground = YES;
return hud;
}
/**
* 手动关闭MBProgressHUD
*/
+ (void)hideHUD
{
[self hideHUDForView:nil];
}
/**
* 手动关闭MBProgressHUD
*
* @param view 显示MBProgressHUD的视图
*/
+ (void)hideHUDForView:(UIView *)view
{
if (view == nil) view = [[UIApplication sharedApplication].windows lastObject];
[self hideHUDForView:view animated:YES];
}
@end
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用