iOS-在UITableView上显示覆盖
我正在从web下载数据,然后在UITableView上显示。因为我想要一个响应性强的用户界面,所以我正在使用GCD进行后台下载。因此,在下载数据时,会显示一个空的UITableView,这并不漂亮。除此之外,IB Sping中还有一个UIActivityIndicatorView设置 我想做的是不显示空表,而是显示一个带有UIActivityIndicator视图的灰色屏幕 到目前为止,我掌握的代码如下:iOS-在UITableView上显示覆盖,ios,uitableview,uiactivityindicatorview,grand-central-dispatch,Ios,Uitableview,Uiactivityindicatorview,Grand Central Dispatch,我正在从web下载数据,然后在UITableView上显示。因为我想要一个响应性强的用户界面,所以我正在使用GCD进行后台下载。因此,在下载数据时,会显示一个空的UITableView,这并不漂亮。除此之外,IB Sping中还有一个UIActivityIndicatorView设置 我想做的是不显示空表,而是显示一个带有UIActivityIndicator视图的灰色屏幕 到目前为止,我掌握的代码如下: dispatch_async(dispatch_get_global_queue(0, 0
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSArray *downloadedCareerIds = [CareersParser idsFrom:@"web"];
NSArray *diskCareerIds = [CareersParser idsFrom:@"disk"];
BOOL equalIds = [downloadedCareerIds isEqualToArray:diskCareerIds];
if (!equalIds) {
DLog(@"ids not equal");
dispatch_async(dispatch_get_main_queue(), ^{
/* Send UI updates back to the main thread. */
// I think here would be a good idead to insert the gray view over the table
[loadingIndicator startAnimating];
// Do GUI stuff on the main thread ...
[loadingIndicator stopAnimating];
// Remove the gray view?
});
}
});
只需使用UITableView的边界创建一个灰色视图,并将其添加为tableView的子视图。加载完成后删除灰色视图。使其正常工作,但在添加的子视图显示在tableview上之前会有一点延迟,因此您会在半秒钟内看到一个空表,然后会看到加载屏幕。您是否在问题中有注释的地方添加灰色视图?如果是这样,并且希望灰色视图不会如此延迟,则应在viewDidLoad中将灰色视图添加到tableview中。您可以将其保存到实例变量或属性,具体取决于您正在执行的操作,然后像以前一样删除它。