О UIImageView+MKNetworkKitAdditions

Я использую UIImageView+MKNetworkKitAdditions в MKNetworkKit для отображения изображения из сети, но когда UIImageView находится в ячейке tableView, метод

-(MKNetworkOperation*) setImageFromURL:(NSURL*) url 
                      placeHolderImage:(UIImage*) image 
                             animation:(BOOL) yesOrNo;

не будет показывать изображение сразу после загрузки изображения. Если я использую

[tableView reloadData]

Я не увижу анимацию показа изображения. Поэтому мне интересно, как я могу решить эту проблему. Спасибо.

Мои коды здесь

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (!cell)
{
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[cell.imageView setImageFromURL:[NSURL URLWithString:@"https://www.google.com/images/srpr/logo11w.png"]];
return cell;
}

person wxy068    schedule 28.12.2013    source источник
comment
вы должны показать нам свой код.   -  person vikingosegundo    schedule 28.12.2013


Ответы (1)


Проблема в том, что UITableViewCell имеет очень оптимизированный рисунок, и когда этот метод вызывается, в imageView нет изображения, поэтому ячейка предполагает, что для рендеринга изображения не требуется.

Теперь, когда сетевой запрос завершится, он установит изображение, но не запрашивает перерисовку ячейки, поэтому вы ничего не увидите.

Вам нужно использовать метод с блоком завершения, а затем попросить ячейку перезагрузиться после завершения запроса изображения.

person Paul.s    schedule 28.12.2013
comment
Я попробовал метод reloadRowsAtIndexPaths, и это приведет к циклу перезагрузки. Я обнаружил, что из-за отсутствия изображения до завершения сетевого запроса размер imageView равен (0,0). И я использую layoutSubviews после завершения сетевого запроса, чтобы решить эту проблему. Большое спасибо! - person wxy068; 28.12.2013