2

MBProgressHUDshowWhileExecuting を使用してネットワークから一部のデータをクエリしますが、MBProgressHUD中心にならない場合があります

ここに画像の説明を入力

写真上 (赤数字):

左上にローディングが表示され、中央に背景が表示されます。

1.ローディング表示は MBProgressHUD の背景にありません 2.ローディングを含まない背景を表示するだけです

-(void)viewDidLoad
{
    //other code ...

    mb = [[MBProgressHUD alloc] initWithView:self.navigationController.view];
    // --> i try which causes also an error
    //[[MBProgressHUD alloc] initWithWindow:self.view.window]; 
    // --> error too
    //[[MBProgressHUD alloc] initWithView:self.view];
    mb.labelText = @"loding city...";

    [self.navigationController.view addSubview:mb];
    [mb showWhileExecuting:@selector(queryCity:) 
                  onTarget:self 
                withObject:[NSNumber numberWithInt:1] 
             animated:YES];
}

-(void)queryCity:(NSNumber*)flag
{
    //query some data from network.
}
4

4 に答える 4

2

参考:言って修正しました

[[[UIApplication sharedApplication] keyWindow] addSubview:_progress];

それ以外の

[self.view addSubview:_progress];

別のケースでも機能するため、あまり好きではありませんが、self.viewここには別のオプションがありませんでした。

于 2014-01-08T17:24:41.850 に答える
1

私はこの問題を見つけます。MBProgressHUD をクリーンアップすると、rect が失われます。

- (void)cleanUp {
taskInProgress = NO;
    //changed by zt9788 2012-12-26
    //comment this line to fix it.
//self.indicator = nil;
#if !__has_feature(objc_arc)
[targetForExecution release];
[objectForExecution release];
#else
targetForExecution = nil;
objectForExecution = nil;
#endif
[self hide:useAnimation];

}

于 2012-12-28T02:49:56.900 に答える
0

MBProgressHUD は、追加先のビューに自動的に配置されます。ナビゲーション コントローラー ビューに追加したため、進行中のナビゲーション バーとの対話をブロックするように配置されています。

これが望ましくない場合は、MBProgressHUD サブビューを別のビューに追加します。この場合、おそらく self.navigationcontroller.view ではなく、self.view に追加する必要があります。

于 2012-11-26T03:01:52.597 に答える