Я пробовал много способов асинхронной загрузки изображений, и у ВСЕХ есть эта проблема, включая сторонние фреймворки. Это заставляет меня поверить, что это как-то связано с моей ячейкой для метода индекса строки.
В любом случае, в настоящее время я загружаю изображения асинхронно, используя 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;
});
});
Кажется, что изображения загружаются асинхронно, но, как и во всех моих попытках использовать сторонние библиотеки, другой код и т. д., изображения мерцают. Что я имею в виду под этим, что когда вы прокручиваете изображения ячейки, кажется, что они мерцают и меняются на другое изображение другой ячейки, прежде чем быстро вернуться обратно, создавая впечатление, что оно мерцает. Это происходит только при прокрутке и обычно только к двум верхним и двум нижним ячейкам. Есть идеи, почему? если кто-нибудь может помочь мне с этой проблемой, я был бы очень признателен!
Спасибо!