В моем приложении довольно ванильный UITableView, используемый для отображения изображения и текста стандартным / стандартным способом.При первом запросе UITableViewCell я возвращаю его с изображением-заполнителем и запускаю асинхронную загрузку реального изображения.По завершении загрузки я заменяю изображение-заполнитель.
Если загрузка не удалась, изображение заполнителя остается.Нажатие на такой ряд действует нормально.Если загрузка прошла успешно, нажатие на строку с нужным изображением приводит к расширению UIImageView до высоты строки (и ширина увеличивается в масштабе).UIImageView никогда не возвращается к нормальному размеру.Грубые попытки установить фрейм UIImageView не облегчают проблему таинственного изменения размера.
// from my - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; method
// after boilerplate cell dequeuing code
cell.textLabel.text = [selectedNoun title];
// add placeholder image
UIImage *placeholderImage = [UIImage imageNamed:@"placeholder.png"];
cell.imageView.image = placeholderImage;
[cell.imageView setContentMode:UIViewContentModeScaleAspectFit];
//...
// If the image has been downloaded I set it
cell.imageView.image = iconDownloader.image;
Это сводит меня с ума.На самом деле это происходит только в одной из двух таблиц в моем приложении, но после сравнения строк или строк я не вижу никакой разницы.Надеясь, что кто-то сталкивался с этим раньше.
Спасибо!
РЕДАКТИРОВАТЬ: У меня нет хорошего объяснения моего решения, кроме как сказать, что изображения более определенного размера, как представляется, приводит ктакое поведение и использование реальных миниатюр (даже изображения, несколько превышающие размер кадра UIImageView) не демонстрируют такого поведения.