Странное поведение UITableViewCellStyleSubtitle + [cell imageView] - PullRequest
2 голосов
/ 06 ноября 2011

Этот вопрос беспокоил меня в течение месяца, и я сопротивлялся публикации об этом, но я не могу больше терпеть. Вот что происходит:

У меня есть приложение с UITableViewCell s, все инициализированы как UITableViewCellStyleDefault. Для каждого я устанавливаю изображение представления изображения, используя отличный пакет SDWebImage, который расширяет UIImageView, чтобы иметь метод для [UIImageView setImageWithURL: (NSURL *) url placeholderImage: (UIImage *) image].

Проблема состоит в том, что изображения отображаются более узкими, чем они должны быть, в tableView, но по какой-то причине выбор строки делает ее правильным размером. Как и прокрутка строки с экрана, затем с экрана, затем с экрана.

Какой метод я должен использовать, чтобы заставить клетки перерисовываться? Я нашел несколько противоречивых идей, и ни одна из них не сработала до сих пор. Я чувствую, что есть простой вызов UITableView к UITableViewCell, который я пропускаю. Кроме того, где я могу поставить этот вызов? Я пробовал звонки в cellForRowAtIndexPath и willDisplayCell.

Спасибо за вашу помощь!

SDWebImage: https://github.com/rs/SDWebImage

Ответы [ 2 ]

0 голосов
/ 15 ноября 2011
[[cell imageView] setContentMode:UIViewContentModeScaleAspectFit];

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

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

0 голосов
/ 08 ноября 2011

Я решил проблему - мне пришлось просто сделать мои SDWebImage изображения-заполнители такими же пропорциями, что и изображения, которые я пытаюсь загрузить. Поскольку мой сервер заставляет все мои изображения иметь размеры 95x95, это было относительно легко исправить; Я просто обновил свой placeholder.png, чтобы он также стал 95x95 (вместо какого-то странного измерения, например 92x132)

...