在这里我会有2种对MBProgressHUD.h的封装,一般情况会放到工程的BaseViewController中去,
1种是弹框覆盖全屏,2是弹框后导航栏上按钮可点击
首先文件.h中声明方法
@interface BaseViewController : UIViewController / * 显示提示弹框,文字为1行尽量简短,及显示时间,一般用于提示语, * * @param aTipMessage 需要显示的文字 * @param holdTime 显示时间 * @param isFullScreen 是否屏幕展示,yes覆盖导航栏,导航栏按钮不可点击,no导航栏按钮可以点击 */ - (void)showHUDTip:(NSString*)aTipMessage holdTime:(NSTimeInterval)holdTime andIsFullScreen:(BOOL)isFullScreen; / * 显示文字弹框有主次之分,主要文字在上方,次要在下,和显示时间,次要文字可显示多行,如果文字过长的话,可以选择此方法, * * @param aTip 主要文字 * @param aMessage 次要文字 * @param holdTime 显示时间 * @param isFullScreen 是否屏幕展示,yes覆盖导航栏,导航栏按钮不可点击,no导航栏按钮可以点击 */ - (void)showHUDTip:(NSString*)aTip withMessage:(NSString*)aMessage holdTime:(NSTimeInterval)holdTime andIsFullScreen:(BOOL)isFullScreen; / * 显示指示器及文字,带风火轮,下方为文字,一般用于网络请求时添加,记得请求完成后,无论成功还是失败,一定要调用隐藏指示器方法 * * @param aTipMessage 风火轮下需要显示的文字 * @param isFullScreen 是否屏幕展示,yes覆盖导航栏,导航栏按钮不可点击,no导航栏按钮可以点击 */ - (void)showHUDIng:(NSString*)aTipMessage andIsFullScreen:(BOOL)isFullScreen; / * 隐藏指示器,显示指示器后,一定要注意调用隐藏指示器的方法 */ - (void)hideHUD; @end 然后需要在文件的.m中实现方法 首先引入头文件 #import "MBProgressHUD.h" @interface BaseViewController () / * 不包含导航指示器 */ @property (nonatomic) MBProgressHUD * progressHUD; / * 全屏指示器 */ @property (nonatomic) MBProgressHUD * progressHUDFullScreen; @end @implementation BaseViewController - (MBProgressHUD *)progressHUDFullScreen { if (!_progressHUDFullScreen) { _progressHUDFullScreen = [[MBProgressHUD alloc] init]; _progressHUDFullScreen.dimBackground = YES; [self.view.window addSubview:_progressHUDFullScreen];//这里需要注意,添加到Window上是覆盖全屏的 } return _progressHUDFullScreen; } - (MBProgressHUD *)progressHUD { if(_progressHUD) { return _progressHUD; } //指示器 _progressHUD = [[MBProgressHUD alloc] init]; _progressHUD.dimBackground = YES; [self.view addSubview:_progressHUD]; return _progressHUD; } #pragma -mark-----------------------------------下面为显示提示框方法---------------------------------------------- #pragma mark - 显示提示 - (void)showHUDTip:(NSString*)aTipMessage holdTime:(NSTimeInterval)holdTime andIsFullScreen:(BOOL)isFullScreen { MBProgressHUD * hud = isFullScreen ? self.progressHUDFullScreen :self.progressHUD; hud.mode = MBProgressHUDModeText; hud.labelText = aTipMessage; hud.detailsLabelText = nil; [hud show:YES]; [hud hide:YES afterDelay:holdTime]; } //显示指示器 - (void)showHUDIng:(NSString*)aTipMessage andIsFullScreen:(BOOL)isFullScreen { MBProgressHUD * hud = isFullScreen ? self.progressHUDFullScreen :self.progressHUD; hud.detailsLabelText = nil; hud.mode = MBProgressHUDModeIndeterminate; hud.labelText = aTipMessage; [hud show:YES]; } //显示提示 - (void)showHUDTip:(NSString*)aTip withMessage:(NSString*)aMessage holdTime:(NSTimeInterval)holdTime andIsFullScreen:(BOOL)isFullScreen { MBProgressHUD * hud = isFullScreen ? self.progressHUDFullScreen :self.progressHUD; hud.mode = MBProgressHUDModeText; hud.labelText = aTip; hud.detailsLabelText = aMessage; [hud show:YES]; [hud hide:YES afterDelay:holdTime]; } //隐藏指示器 - (void)hideHUD { [self.progressHUD hide:YES afterDelay:0]; [self.progressHUDFullScreen hide:YES afterDelay:0]; }
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/34504.html