私のセルイメージをロードするために非同期ブロック(グランド中央ディスパッチ)を使用しています。しかし、スクロールしても速く表示されますが、正しいものがロードされるまで非常に高速です。これは一般的な問題だと確信していますが、私はそれを回避することはできません。非常に少なくともテーブルビュー非同期ロードされたセルイメージはスクロールして高速にスクロールするとちらつきます
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// Load the image with an GCD block executed in another thread
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[[[appDelegate offersFeeds] objectAtIndex:indexPath.row] imageurl]]];
dispatch_async(dispatch_get_main_queue(), ^{
UIImage *offersImage = [UIImage imageWithData:data];
cell.imageView.image = offersImage;
});
});
cell.textLabel.text = [[[appDelegate offersFeeds] objectAtIndex:indexPath.row] title];
cell.detailTextLabel.text = [[[appDelegate offersFeeds] objectAtIndex:indexPath.row] subtitle];
return cell;
}
http://stackoverflow.com/questions/19326284/what-is-the-properway-to-use-nscache-with-dispatch-async-in-a-reusable-table-ce/19327472#を参照してください。 19327472またはhttp://stackoverflow.com/questions/16663618/async-image-loading-from-url-inside-a-uitableview-cell-image-changes-to-wrong/16663759#16663759 – Rob
私の投稿http ://stackoverflow.com/a/26147814/3052059ありがとうございました! –
私はこのブログの記事を読むことをお勧めしますhttp://www.natashatherobot.com/how-to-download-images-asynchronously-and-make-your-uitableview-scroll-fast-in-ios/ – pprochazka72