iOS-全球更改MBProgressHUD设计



我使用MBProgressHUD在应用程序中加载屏幕。我有26次使用不同的HUD。

现在,我决定为HUD使用一个自定义的UIView(一个动画UIImageView(。我想将此应用于我在应用程序中使用的所有HUD,但自定义HUD的代码大约有15行长,将此代码添加到应用程序中每次出现的MBProgressHUD中肯定不是正确的方法。

从这里出发,正确的路是什么?这不是我第一次遇到这样的问题,我不知道如何保持代码更干净、更简单。

一种方法是在AppDelegate中声明微调器,编写方法showSpinnerhideSpinner,并定义一个宏来调用这些微调器方法。

您可以在项目中全局使用这个宏。在应用程序代理中更改微调器代码也很容易,而且您不必更改任何内容。

您可以

1(子类你的MBProgressHUD,这样你就不会接触你的库——你已经嵌入了

2(修改该子类中的此属性和参数。它应该在这里进行样式设置,因为您不必在代码中的多个位置进行样式设置。

3(然后在任何地方调用子类,因为它将是您以前调用过的同一个类。

您可以在MBProgressHUD上编写一个类别以返回HUD的自定义实例,然后将其导入到您使用它的位置,或者在AppName_Prefix.pch文件中将其导入所有位置。

所以,它看起来像这样:

MBProgressHUD+Additions.h:中

+ (MBProgressHUD *)myCustomizedHUD;

MBProgressHUD+Additions.m

+ (MBProgressHUD *)myCustomizedHUD {
   MBProgressHUD *myHUD = [[MBProgressHUD alloc] init]; 
   // customize 
   return myHud; 
}

最新更新