我有一個視圖控制器,頂部有三個分段按鈕,下面有一個表格視圖。當用戶點擊一個按鈕時,會調用一個URL,並將相應的數據加載到單元格中。然後,適當的圖像在後臺加載並更新表格視圖。問題出在用戶點擊不同的按鈕時,最後一組數據的圖像尚未完成加載。最初,我阻止用戶點擊一個不同的按鈕,直到所有的第一個數據完成加載。但是這真的很慢。然後,我嘗試等待,直到所有圖像在更新tableview之前完成加載,但這也很慢。除了製作三個桌面之外,還有更好的方法嗎?以下是我如何獲取圖像。帶有動態數據和背景圖片加載的iOS TableView
- (void) getImageLinks:(int)number{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[imageLinks objectAtIndex:number]];
[request setAllHTTPHeaderFields:@{@"User-Agent": @"Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25"}];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if([data length] > 0){
UIImage *image = [UIImage imageWithData:data];
if(image){
[images addObject:image];
dispatch_async(dispatch_get_main_queue(), ^{
if(number<[imageLinks count]-1){
[self getImageLinks:number+1];
}else{
isRefreshing = NO;
_segmentedControl.userInteractionEnabled = YES;
NSLog(@"end refreshing");
[_tableView reloadData];
[refreshControl endRefreshing];
}
});
}else{
NSLog(@"NO IMAGE");
}
}
}];
btwn你的源代碼在哪裏? –
更新後顯示源代碼。 –
你可以使用字典處理三個按鈕點擊段。首先用任意鍵將數據存儲在字典中,然後將該字典添加到主數組中,然後單擊從該字典中獲取該字典並加載。當您第一次請求從服務器獲取數據時,也會給該標記該請求,以便在後臺獲取所有數據。 –