iOS - 全局更改 MBProgressHUD 设计
Posted
技术标签:
【中文标题】iOS - 全局更改 MBProgressHUD 设计【英文标题】:iOS - Globally change MBProgressHUD design 【发布时间】:2016-09-04 13:02:22 【问题描述】:我使用 MBProgressHUD 在我的应用中加载屏幕。我有 26 次使用不同的 HUD。
现在,我决定为 HUD 使用定制的 UIView(动画 UIImageView)。我想将此应用于我在我的应用程序中使用的所有 HUD,但自定义 HUD 的代码大约有 15 行长,并且绝对不是将此代码添加到我的应用程序中每一次出现的 MBProgressHUD 的正确方法。
从这里出发的正确方法是什么?这不是我第一次遇到这样的问题,我不确定如何让我的代码更简洁。
【问题讨论】:
【参考方案1】:一种方法是在AppDelegate中声明spinner,编写showSpinner
和hideSpinner
方法,同时定义一个macro来调用这些spinner方法。
您可以在项目中全局使用此宏。在应用程序委托中更改微调器代码也很容易,您无需更改任何内容。
【讨论】:
【参考方案2】:你可以
1) 子类化您的 MBProgressHUD,这样您就不会触及您嵌入的库
2) 修改该子类中的属性和参数。它应该在此处设置样式,因为您不必在代码中的多个位置都这样做。
3) 然后在任何地方调用那个子类,因为它会是你之前调用过的同一个类。
【讨论】:
【参考方案3】:您可以在MBProgressHUD
上编写一个类别来返回您的HUD 的自定义实例,然后将其导入到您使用它的地方,或者在您的AppName_Prefix.pch
文件中将其导入到任何地方。
所以,它看起来像这样:
在MBProgressHUD+Additions.h
:
+ (MBProgressHUD *)myCustomizedHUD;
在MBProgressHUD+Additions.m
+ (MBProgressHUD *)myCustomizedHUD
MBProgressHUD *myHUD = [[MBProgressHUD alloc] init];
// customize
return myHud;
【讨论】:
以上是关于iOS - 全局更改 MBProgressHUD 设计的主要内容,如果未能解决你的问题,请参考以下文章