我对 iOS 还是很陌生,但下面的代码似乎应该可以工作。我在后台有很多工作要做,所以在工作完成时应该向用户显示“忙碌指示器”。但是发生的情况是忙指示符没有出现几秒钟。它仅在大部分工作(但不是全部)完成后才会出现。
- (void) fetchDataTest {
// next line will create and display a busy indicator
__block MRProgressOverlayView *overlay = [MRProgressOverlayView showOverlayAddedTo:self.view title:@"Loading…" mode:MRProgressOverlayViewModeIndeterminate animated:YES];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^(void) {
[self fetchData];
dispatch_async(dispatch_get_main_queue(), ^(void) {
[overlay hide:YES];
});
});
}
我有很多运行缓慢的日志记录(上面未显示),我可以查看输出日志(包括线程 ID)并看到覆盖已创建并且后台工作开始 - 但我的设备上没有出现覆盖几秒钟。
如何让叠加层立即出现?