gpt4 book ai didi

ios - HUD 在 iOS 中不工作

转载 作者:行者123 更新时间:2023-11-29 02:46:59 27 4
gpt4 key购买 nike

我需要从 JSON 对象加载一些图像。加载这些图像时,我需要在我的 View 中显示一个 HUD。我试着像下面这样定义一个 HUD,

在viewDidLoad方法中定义HUD

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
hud.mode = MBProgressHUDModeIndeterminate;
hud.labelText = @"Loading Images";
[hud show:YES];
[hud showWhileExecuting:@selector(loadJSONData) onTarget:self withObject:nil animated:YES];

loadJSONData 方法

-(void)loadJSONData{
_myObject = [[NSMutableArray alloc] init];

NSData *jsonSource = [NSData dataWithContentsOfURL:[NSURL URLWithString:url]];

id jsonObjects = [NSJSONSerialization JSONObjectWithData:
jsonSource options:NSJSONReadingMutableContainers error:nil];
NSArray *dataDic = [jsonObjects objectForKey:@"data"];
for (NSDictionary *dicData in dataDic) {
Lawyer *l = [[Lawyer alloc] init];
dispatch_async(queue, ^{
NSString *imgUrl = [NSString stringWithFormat:@"myurl",l.imageUrl];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imgUrl]];
UIImage *image = [UIImage imageWithData:data];
dispatch_async(dispatch_get_main_queue(), ^{
l.uiImage = image;
});

});
[_myObject addObject:[l initFromDictionary:dicData]];
}
}

我的输出显示了 HUD 一秒钟然后消失了。没有数据正在加载。我该如何解决这个问题。

提前致谢!

最佳答案

您的代码正在按预期工作。 loadJSONData 执行异步请求,因此选择器实际上已完成执行。您应该做的是在方法 loadJSONData 之前显示 HUD,然后在收到数据后隐藏它:

dispatch_async(dispatch_get_main_queue(), ^{
l.uiImage = image;
[MBProgressHUD hideHUDForView:self.view animated:YES];
});

尽管我个人会在 loadJSONData 中进行回调,并在完成 block 中执行 HUD 解除。

关于ios - HUD 在 iOS 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24991634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com