私はMBProgressHUDを使用してローディングを表示し、ローカルの long メソッドを実行してユーザーのエクスペリエンスを向上させています。すべて正常に動作していますが、メソッドが1秒以内に実行される場合、ロードが表示されないように実装する必要があります。MBProgressHUD のサンプルを調べたところ、この機能のためにsetGraceTime
時間setMinShowTime
が表示されていましたが、すべてが正しく機能していませんでした。猶予時間を設定すると、メソッドの実行時間が1秒を超えても読み込みアイコンが表示されないため、コードは次のとおりです
if (self.HUD == nil)
{
self.HUD = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:self.HUD];
}
self.HUD.labelText = @"Please wait.....";
// [self.HUD setMinShowTime:2.0f];
[self.HUD setGraceTime:1.0f];
[self.HUD setTaskInProgress:YES];
[self.HUD show:YES];
// [self.HUD hide:YES afterDelay:3];
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate distantPast]];
if (mycondition == nil)
{
[self myTask:[NSURL fileURLWithPath:strPath]];
//[self performSelector:@selector(mytask:) withObject:[NSURL fileURLWithPath:strPath]];
}
else
{
//else
}
self.tempView.hidden = YES;
// self.HUD.taskInProgress = NO;
[self.HUD hide:YES];
self.HUD = nil;
この問題の解決策[[NSRunLoop currentRunLoop] runUntilDate:[NSDate distantPast]];
を教えて
ください。このコードの何が問題なのか教えてください..?!