Я пробовал много способов асинхронной загрузки изображений, и они ВСЕ имеют эту проблему, включая сторонние фреймворки. Это заставляет меня поверить, что это как-то связано с моей ячейкой для метода индекса строки.
В любом случае, я сейчас загружаю изображения асинхронно, используя Grand Central Dispatch и Blocks, вот мой код:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CustomTableCell";
static NSString *CellNib = @"CustomizedCell";
CustomizedCell *cell = (CustomizedCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:CellNib owner:self options:nil];
cell = (CustomizedCell *)[nib objectAtIndex:0];
}
// Configure the cell...
cell.Label.text = [self.TitleArray objectAtIndex:indexPath.row];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
NSString *String = [[self.Array objectAtIndex:indexPath.row];
NSURL *url = [NSURL URLWithString:String];
NSData *Data = [NSData dataWithContentsOfURL:url];
UIImage *Image = [UIImage imageWithData:Data];
dispatch_sync(dispatch_get_main_queue(), ^{
cell.ImageView.image = Image;
});
});
Кажется, что загрузка изображений происходит асинхронно, но, как и во всех моих попытках использовать сторонние библиотеки, другой код и т. Д., Изображения мерцают. Под этим я подразумеваю, что при прокрутке изображения ячейки мерцают и переходят в другое изображение другой ячейки, прежде чем быстро переключаться назад, создавая впечатление, будто оно мерцает. Это происходит только при прокрутке и обычно только в верхних двух и двух нижних ячейках.
Есть идеи почему?
если бы кто-нибудь мог помочь мне с этой проблемой, я был бы очень признателен!
Спасибо!