我创建了一个类别类。因为我的应用程序主要用于API调用。所以我在使用API加载时使用了MBProgressHUD来显示加载指示符。
-(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与我尝试隐藏它的位置不同。我不知道如何处理它。
我第一次使用类别,所以没有深入了解它。
任何人都可以帮助我吗? 提前谢谢!
答案 0 :(得分:2)
创建一个自定义类( NSObject 子类),其类参数为 UIView ,描述为下方。
以下是两种方法(在ProgressHUD的新自定义类中),这将有助于您在 UIViewController MBProgressHUD > 类别。
+(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];
}
请尝试以上方式。希望这可以帮助。 祝你好运!!!