MBProgressHUD.h使用详解

在这里我会有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];

}

 

你可能感兴趣的:(MBProgressHUD使用,iOS开发)