@ 2 раза изображение сетчатки не отображается на устройстве Retina (iPod touch) или на симуляторе (iPhone 4) - PullRequest
3 голосов
/ 13 января 2012

Это мой первый опыт разработки двух версий изображений для устройств с сетчаткой или без сетчатки, поэтому я подозреваю, что я делаю что-то не так, но я создал две версии изображения, одна - 302x193, другая - 604x386. Они называются «displayCell1.png» и «displayCell1@2x.png» соответственно.

Я также поставил водяные знаки на изображении @ 2x, чтобы убедиться, что могу узнать, отображается ли это изображение. Насколько я понимаю, мое устройство Retina (или симулятор iPhone 4) должно автоматически определять наличие версии @ 2x и отображать ее. Однако следующий код приводит к отображению только версии со стандартным разрешением. Любая помощь будет оценена:

- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {

    static UIImage *bgImage = nil;
    if (bgImage == nil) {
        bgImage = [[UIImage imageNamed:@"displayCell1.png"] retain];
    }
    cell.backgroundView = [[[UIImageView alloc] initWithImage:bgImage] autorelease];
    cell.backgroundView.contentMode = UIViewContentModeTopLeft;
}

Я тоже попробовал просто imageNamed:@"displayCell1", тоже безрезультатно.

Я могу включить больше деталей по мере необходимости. Спасибо!

EDIT:

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

Вот изображение первое: enter image description here

Размеры 302х193

Вот изображение два: enter image description here

Размеры 604х386

И вот что я получаю, когда запускаю с кодом выше (обратите внимание, что высота ячейки набрана, поэтому на экране отображается только одна ячейка):

enter image description here

Я здесь довольно тупой.

Ответы [ 4 ]

3 голосов
/ 13 января 2012

Откройте скомпилированный пакет .app в Finder (щелкните его правой кнопкой мыши и выберите «Показать содержимое пакета») и убедитесь, что обе версии изображения имеются. Возможно, вам придется очистить папку сборки и перекомпилировать, если Xcode просто забыл скопировать файл.

1 голос
/ 13 января 2012

Код выглядит хорошо для меня.

Убедитесь, что изображение @ 2x действительно включено в пакет.

0 голосов
/ 14 января 2014

Я столкнулся с аналогичной проблемой на xCode 5, и я сделал очистку и удаление производных данных в органайзере.

0 голосов
/ 14 января 2012

После того, как я поигрался с настройками Симулятора по прихоти, я обнаружил, что Аппаратное обеспечение> Устройство было установлено на iPhone, а не iPhone (retina)

enter image description here

ЭтоИсправлена ​​проблема для симулятора.К сожалению, хотя на устройстве теперь работает и , я не до конца знаю, что решило проблему с устройством, поскольку любой из твиков, которые я пробовал, мог быть ключевым, но япросто пытался их на симуляторе, прежде чем вернуться к устройству.

Так что, для любого, кто просматривает это в будущем, я бы сказал, чтобы попробовать все, что было предложено.Все казалось твердыми рекомендациями.

...