スレッドのオーバーヘッドとバックグラウンドの要求を管理するため、MBProgressHUD を使用したくありません。バックグラウンド タスク ハンドラーは必要ありません。ビュー/ウィンドウを扱うシンプルでスレッドセーフなライブラリで十分です。また、さまざまなView Controllerからインスタンスを作成して追加/削除することなく、消費者にとっては負担が大きすぎると思います. コードのどこからでも呼び出せるはずです。このようなもの:
[SimpleHud getInstance] pop];
[SimpleHud getInstance] pop withTitle:@"Doing stuff"];
[SimpleHud getInstanca] hide];
1610 次
2 に答える
1
David Sinclair のDSActivityViewが好きです。フェザー級ではありませんが、MBProgressHUD よりも軽量です。一見の価値あり。
于 2010-12-21T20:58:07.037 に答える
0
これは私が思いついたものです:
-(void)pop:(NSString *)text {
[self performSelectorOnMainThread:@selector(popLightBox:) withObject:text waitUntilDone:YES];
}
-(void)hide {
[self performSelectorOnMainThread:@selector(hideLightBox) withObject:nil waitUntilDone:YES];
}
-(void)popLightBox:(NSString *)text
{
NSArray *windows = [[UIApplication sharedApplication] windows];
NSInteger last = [windows count]-1;
if (last < 0) return;
UIWindow *currentWindow = [windows objectAtIndex:last];
[currentWindow addSubview:self.view];
if (text == nil) {
self.loadingLabel.text = __DEFAULT_LOADING_TEXT__;
}else {
self.loadingLabel.text = text;
}
}
-(void)hideLightBox
{
[self.view removeFromSuperview];
}
クラスは単純な UIViewController です。
于 2010-12-21T20:37:14.607 に答える