2013-03-14 2 views
0

Я пытаюсь установить изображение в UITAbleViewCell, но оно не отображается до тех пор, пока не будет прокручиваться.Изображение не установлено в UItableViewCell:

Прошу прощения, если это повторяется. Но я попробовал setNeedsDiplay, reloadRowsinIndexPAth и все другие методы перезагрузки. Я использую SDWebImageCache для загрузки изображения и RayWenderlich's example для создания горизонтальных Tableviewcells. Я вставляю свой код для справки. нужен

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *CellIdentifier = @"ArticleCell"; 
__block ArticleCell_iPad *cell = (ArticleCell_iPad *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) 
{ 
    cell = [[ArticleCell_iPad alloc] initWithFrame:CGRectMake(0, 0, kCellWidth_iPad, kCellHeight_iPad)]; 
} 
if ([self.articles count] == 0) { 
    return cell; 
} 
__block Offer *offer = [self.articles objectAtIndex:indexPath.row]; 
dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 
dispatch_async(concurrentQueue, ^{ 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 201, 201)]; 
    NSURL *imageURL = [NSURL URLWithString: [NSString stringWithFormat:@"%@", offer.image.url]]; 
    [imageView setImageWithURL:imageURL]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [cell.thumbnail setImage:imageView.image]; 
     cell.titleLabel.text = offer.title; 
     cell.priceLabel.text = [NSString stringWithFormat:@"$%@", offer.regularprice]; 
    }); 
}); 
dispatch_release(concurrentQueue); 
cell.selectionStyle = UITableViewCellSelectionStyleNone; 

return cell; 
} 
+0

Является ли imageView пользовательским UIImageView? Если да, измените его имя, или ячейка будет использовать образ UITableViewCell imageView – dthien

+0

Я изменил имя, но не работал. Вы видите, что что-то еще не так в коде? Спасибо .. – shyamsundar1988

ответ

1

Все, что касается пользовательского интерфейса, чтобы быть обработаны внутри основного потока так, поместите

[imageView setImageWithURL:imageURL]; 

этот код внутрь dispatch_get_main_queue() блока.

+0

Привет Энди, Спасибо за ваш ответ. Я тоже это пробовал. Еще ничего хорошего. SDWebImageCache сказал в одном из своих блогов, чтобы использовать образ заполнителя. Даже это не помогло в этом случае. – shyamsundar1988

0

Ответ на мой вопрос.

Я избавился от промежуточного UIImageview. Настройка изображения непосредственно на миниатюре сделала трюк.

Смежные вопросы