Изображение «перемещается» при изменении heightForRowAtIndexPath в UITableViewCell - PullRequest
1 голос
/ 11 марта 2010

У меня есть табличное представление с переменной высотой, как определено в heightForRowAtIndexPath. По какой-то очень странной причине изображение «отступает» вправо в зависимости от высоты; если высота достаточно мала, изображение прилипает к левой стороне ячейки, но по мере увеличения высоты изображение для указанной ячейки смещается вправо по сравнению с другими строками.

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

Проблема раскрывается на следующем простом примере:

- (CGFloat)tableView:(UITableView *)tableView 
  heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    return (indexPath.row+1) * 50;
}

Каждая ячейка настроена (упрощена) как ячейка стиля «Субтитры» с:

// ...
cell.textLabel.text = @"foo";
cell.detailTextLabel.text = @"bar";
cell.imageView.backgroundColor = [UIColor redColor]; // for debugging; i have images with transparent bg
cell.imageView.image = anImageThatIs55x50pixelsBig;
return cell;

Есть идеи? Моя голова кровоточит от любви к стене.

Редактировать: загрузил экран, который отображает это. «Изображение» - это просто скриншот крошечной области экрана, которая выглядит немного странно, но я уверен, что вы получите изображение: http://img28.imageshack.us/img28/549/screenshot20100311at172.png

Ответы [ 2 ]

0 голосов
/ 13 марта 2010

Что произойдет, если вы добавите свой собственный UIImageView в UITableViewCell вместо использования встроенного?Я считаю, что встроенный модуль предназначен для добавления отступов, если есть место для него, и игнорирует его, если его нет.

0 голосов
/ 12 марта 2010

Потенциальной причиной может быть contentMode.

UIView (суперкласс UIImageView) определяет свойство contentMode, которое определяет, как представление размещает свое содержимое при изменении прямоугольника границ. Вы можете изменить это свойство на другой режим, так как в случае UIImageView он определяет, как и где изображение рисуется.

...