UIImageView в моем UITableViewCell меняет размер при клике - PullRequest
23 голосов
/ 21 декабря 2011

В моем приложении довольно ванильный 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) не демонстрируют такого поведения.

Ответы [ 11 ]

0 голосов
/ 21 декабря 2011

Это маловероятно, но вы должны попытаться выяснить, что происходит с кадрами подпредставлений UITableViewCell, когда его свойство isSelected переключается с NO на YES (т. Е. Что происходит при нажатии на ячейку). Я сомневаюсь, что это очень поможет, но это стоит посмотреть (если вы можете найти что-нибудь ... это все под капотом UITableViewCell, я бы вообразил).

Вам также следует заглянуть в свойство clipsToBounds imageview. Может быть, это как-то связано с этим?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...