2014-01-27 41 views
0

我有一個「加載...」覆蓋UIView子類,在我的應用程序的各個地方使用。該視圖總是看起來相同,並且一次最多隻能使用一個。這似乎是一個使用單身人士的好地方。爲了簡單起見,我想只用類方法showOverlayhideOverlay,以便每個使用它的類不必管理它的一個實例。它只是到處都是重複的代碼。可以單身UIView子類嗎?

我的直覺告訴我這是一個壞主意,但我不確定它到底是什麼。它被認爲是一種不好的做法?這是一個簡單的看法,不應該佔用太多的記憶。

+0

中調用這些方法重新創建代價高嗎?你真的會保存代碼嗎? – Wain

回答

6

沒有不使用單身人士的UIView。 在UIViewController中創建加載屏幕的最佳方式是創建一個像「ViewController」的超級UIViewController。 您在那裏創建了一個公共的showOverlayhideOverlay方法。

然後你從ViewController

@interface ViewController 

- (void)showOverlay; 
- (void)hideOverlay; 

@end 

@interface MainViewController : ViewController 

@end 

需要子類人的UIViewControllers在你implementatie實施showOverlay和hideOverlay。 然後你可以從MainViewController

3

我強烈建議使用MBProgressHUD

MBProgressHUD是一款iOS嵌入式類,它在後臺線程中完成工作時顯示帶有指示符和/或標籤的半透明HUD。 HUD意味着替代未公開的私人UIKit UIProgressHUD以及其他一些功能。

+0

第二MBProgressHUD – Jack

+0

當我開始工作時,該項目使用MBProgressHUD和自定義覆蓋類。自定義類在更多地方使用,並且具有我們需要的附加功能,所以我實際上是通過並移除所有MBProgressHUD。 – Marty

相關問題