Почему UITableViewCell backgroundView размывает изображение - PullRequest
0 голосов
/ 04 февраля 2010

Я создаю подкласс UITableViewCell и в функции init я делаю следующее:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"packagelistcell_background.png"]];
[imageView setFrame:CGRectMake(0, 0, 300, 81)];
self.backgroundView = imageView;
[imageView release];

Когда это отображается на экране, изображение выглядит слегка размытым. Для тестирования я поместил прямой UIImageView над табличным представлением, и изображение выглядит идеально и четким. Представление таблицы представляет собой сгруппированное представление таблицы. Вы знаете, почему изображение размыто?

Ответы [ 3 ]

1 голос
/ 06 февраля 2010

Я думаю, что ячейка была изменена, как и backgroundView.

Попробуйте

imageView.autoresizingMask = UIViewAutoresizingNone;
0 голосов
/ 03 мая 2011

К сожалению, решение @ freytag у меня не сработало.

Чтобы решить эту проблему, мне пришлось добавить UIImageView в контейнер UIView и установить это последнее как фоновое представление моей пользовательской ячейки вместо установки непосредственно UIImageView:

UIImageView *imgView = [[UIImageView alloc] initWithImage:@"cellBackground.png"];
UIView *backgrContainer  = [[UIView alloc] initWithFrame:self.backgroundView.frame];
[backgrContainer addSubview:imgView];
[self setBackgroundView:backgrContainer];// instead of  [self setBackgroundView:imgView];
[backgrContainer release];
[imgView release];

По какой-то причине установка непосредственно в UIImageView делает его размытым (даже если нет изменения размера вхождения). Установка autoresizingMask = None или contentMode <> ScaleToFill для UIImageView не устранила мою проблему.

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

(на устройстве / симуляторе Retina, по-видимому, нет проблем с размытым изображением на фоне ячейки. Вид)

0 голосов
/ 04 февраля 2010

Попробуйте сместить imageView на 0,5 пикселя.

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