我有一個UITableView與幾個條目。選擇一個,我需要它做一個潛在的耗時的網絡操作。爲了給用戶一些反饋,我嘗試在UITableViewCell中放置一個UIActivityIndicatorView。然而,微調不會出現,直到很久以後 - 我完成了昂貴的操作之後!我究竟做錯了什麼?UITableViewCell accessoryView不會出現,直到很晚
- (NSIndexPath *) tableView:(UITableView *) tableView
willSelectRowAtIndexPath:(NSIndexPath *) indexPath {
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[spinner autorelease];
[spinner startAnimating];
[[tableView cellForRowAtIndexPath:indexPath] setAccessoryView:activity];
if ([self lengthyNetworkRequest] == nil) {
// ...
return nil;
}
return indexPath;
}
正如您所看到的,我在長時間的網絡操作之前將微調器設置爲accessoryView。但只有在tableView:willSelectRowAtIndexPath:
方法結束後纔會出現。