當我從本地JSON加載時,我的UITableView滾動真的很慢。圖像正在從外部URL加載。我第一次嘗試在我的viewWillAppear中的方法加載JSON:從JSON慢速UITableView滾動
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"HomePage" ofType:@"json"];
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfFile:filePath];
self.titleLabels = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
});
而且在我的tableView(定義UITableViewCell *)的tableView:(UITableView的*)的tableView的cellForRowAtIndexPath,我有以下幾點:
HomeTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
if(cell == nil) {
[tableView registerNib:[UINib nibWithNibName:@"HomeCell" bundle:nil] forCellReuseIdentifier:@"Cell"];
cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
}
NSDictionary *titleLabels = [self.titleLabels objectAtIndex:indexPath.row];
NSString *label = [titleLabels objectForKey:@"Heading"];
NSURL *imageURL = [NSURL URLWithString:[titleLabels objectForKey:@"Image"]];
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageURL]];
cell.label.text = label;
cell.imageView.image = image;
cell.cardView.frame = CGRectMake(10, 5, 300, 395);
return cell;
我只是想知道爲什麼表格視圖滾動非常緩慢。如果任何人都可以對此有所瞭解,將不勝感激。
謝謝!
此行'的UIImage *圖像= [ UIImage imageWithData:[NSData dataWithContentsOfURL:imageURL]];'會導致問題。這是來自主線程的同步調用,所以它會阻塞用戶界面,直到檢索到圖像數據。使用延遲加載的圖像 – 2014-12-02 00:47:30