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,编写showSpinnerhideSpinner方法,同时定义一个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 设计的主要内容,如果未能解决你的问题,请参考以下文章

IOS 第三方框架-MBProgressHUD

IOS - MBProgressHUD 设置自定义背景图片

iOS swift 给MBProgressHUD分类

iOS——MBProgressHUD详解

iOS MBProgressHUD 之带底板的加载提示

MBProgressHUD 导致 iOS 应用程序崩溃 (Swift 2.0)