MBProgressHUD 不适用于类别

MBProgressHUD not working with category

我创建了一个类别class。因为我的应用程序主要用于 API 调用。所以我使用 MBProgressHUD 在我的 API 加载时显示加载指示器。

-(void)loading {
    MBProgressHUD *HUD = [[MBProgressHUD alloc] initWithView:self.view];
    [self.view addSubview:HUD];
    HUD.color = [UIColor colorWithRed:79.0/255.0 green:79.0/255.0 blue:79.0/255.0 alpha:1.0];
    [HUD show:YES];
}

和我写的结果,

[HUD hide:YES];

但是,我需要在每个文件中编写以上代码。所以我认为类别是减少代码重复的最好方法。如果我将加载方法放在类别中,那么我只需用

调用它
[self loading];

结果我的 HUD 没有隐藏。我知道在创建 HUD 时存在冲突。 因为在类别文件中创建的 HUD 与我试图隐藏它的位置不同。不知道怎么处理。

第一次使用分类,所以不是很了解

有人可以帮我吗? 提前致谢!

使用 Class 方法创建自定义 class (NSObject subclass) UIView 的参数如下所述。

下面是两种方法(在 ProgressHUD 的新自定义 class 中),将有助于您使用 MBProgressHUDUIViewController 类别中。

+(void)showLoading:(UIView *)onView
{
    HUD = [[MBProgressHUD alloc] initWithView:onView];
    [onView addSubview:HUD];
    HUD.color = [UIColor colorWithRed:79.0/255.0 green:79.0/255.0 blue:79.0/255.0 alpha:1.0];
    [HUD show:YES];
}

+(void)hideView
{
    [HUD hide:YES];
}

现在创建一个UIViewController类,下面只有两种方法。这些方法将有助于使用类别在视图控制器中显示进度。

UIViewController类方法。

-(void)showProgressHUD
{
    [MBProgressHUDCustom showLoading:self.view];
}

-(void)hideProgressHUD
{
    [MBProgressHUDCustom hideView];
}

请尝试以上方法。希望这可以帮助。 祝你好运!!!