1

スレッドのオーバーヘッドとバックグラウンドの要求を管理するため、MBProgressHUD を使用したくありません。バックグラウンド タスク ハンドラーは必要ありません。ビュー/ウィンドウを扱うシンプルでスレッドセーフなライブラリで十分です。また、さまざまなView Controllerからインスタンスを作成して追加/削除することなく、消費者にとっては負担が大きすぎると思います. コードのどこからでも呼び出せるはずです。このようなもの:
[SimpleHud getInstance] pop];
[SimpleHud getInstance] pop withTitle:@"Doing stuff"];
[SimpleHud getInstanca] hide];

4

2 に答える 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 に答える