gpt4 book ai didi

ios - 为什么 HUD 不显示?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:07:14 26 4
gpt4 key购买 nike

我的大部分数据都来自网络服务,这可能需要相当长的时间。尤其是在较小的网络上。

屏幕是黑色的。我可以从 NSLogs 中看到数据在管道中传播,但指标没有显示。然后当它出现时,指示器会短暂弹出然后消失。

  - (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[HUD showUIBlockingIndicatorWithText:@"Fetching DATA"];
[self callDatabase];
[HUD hideUIBlockingIndicator];
}

最佳答案

听起来您的[self callDatabase] 方法可能阻塞了主线程。当主线程被阻塞时,对 View 层次结构的修改将不会反射(reflect)在屏幕上。你能把数据库工作放在后台吗?大概是这样的:

[HUD showUIBlockingIndicatorWithText:@"Fetching DATA"];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self callDatabase];
dispatch_async(dispatch_get_main_queue(), ^{
[HUD hideUIBlockingIndicator];
});
});

这会导致 callDatabase 方法在后台运行,而不是阻塞您的主线程。然后当数据库工作完成时,HUD 将隐藏在主线程上。请注意,仅在主线程上修改 View 层次结构(通常,“执行 UI 工作”)很重要。

关于ios - 为什么 HUD 不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22108817/

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