2016-09-04 5 views
0

MBProgressHUDを使用して、アプリで画面を読み込みます。私は別のHUDを使用する26の出現を持っています。iOS - MBProgressHUDデザインをグローバルに変更する

ここでは、HUD用にカスタマイズされたUIView(アニメーション化されたUIImageView)を使用することに決めました。私はこれを私のアプリで使っているすべてのHUDに適用したいが、HUDをカスタマイズするコードは約15行であり、アプリでMBProgressHUDが1回発生するたびにこのコードを追加するのは間違いない。

ここから正しい方法はありますか?このような問題に遭遇したのは、これが初めてではありません。コードをよりクリーンかつシンプルに保つ方法がわかりません。

答えて

1

1つの方法は、AppDelegateでスピナーを宣言し、showSpinnerと​​のメソッドを記述し、これらのスピナーメソッドを呼び出すためにmacroを定義することです。

あなたはこのマクロをあなたのプロジェクトでグローバルに使うことができます。また、アプリケーションデリゲートのスピナーコードを変更するのは簡単で、何も変更する必要はありません。

1

することはでき

1)サブクラスごMBProgressHUDあなたは

2が埋め込まれているライブラリには触れないように)そのサブクラスでこのプロパティとパラメータを変更します。これは、コードの複数の場所で行う必要がないので、ここでスタイルを設定する必要があります。

3)そして、それは同じクラスで、あなたが前に呼ばれていたことだろうと、どこにでもそのサブクラスを呼び出します。

1

MBProgressHUDにカテゴリを書き込んで、HUDのカスタマイズされたインスタンスを返し、それを使用する場所またはAppName_Prefix.pchファイルにインポートして、どこにでもインポートすることができます。 MBProgressHUD+Additions.m

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

+ (MBProgressHUD *)myCustomizedHUD;

MBProgressHUD+Additions.hで:

だから、それは次のようになります

関連する問題