Фактические размеры изображений сетчатки в пикселях (iOS)

Прочитав собственный HIG Apple (в частности, раздел «Создание изображений для сетчатки...») и просмотрев похожие ответы и предлагаемые блоги, я не могу понять, как правильно создавать изображения для сетчатки.

Чтобы лучше объяснить, позвольте мне создать сценарий:

  • У меня есть UIButton размером 44 x 44 точки, который я выложил в IB.

  • Я иду в фотошоп, создаю изображение размером 44 х 44 пикселя. Я сохраняю это как [email protected]

  • Я сохраняю другой, без добавления @2x.png к имени файла.

  • В коде я делаю что-то вроде... [UIImage imageNamed:@"image"]

Из того, что я читал, кажется, что DPI не имеет значения. Я также понимаю, что изображения на сетчатке, конечно, в два раза больше исходного изображения. Итак, в приведенном выше сценарии [email protected] должен был быть 88 x 88 пикселей вместо 44 x 44 пикселей? В [UIImage imageNamed:@"image"] мне нужно указать @2x в имени изображения, или xcode позаботится об этом?

Следуя описанному выше сценарию, может ли кто-нибудь поправить меня или подтвердить, что это правильный размер изображения в пикселях?


person Jason Renaldo    schedule 28.07.2013    source источник


Ответы (2)


Описанный вами сценарий неверен.

Вот правые:

  1. Предположим, вы хотите разместить кнопку размером 44 x 44 pt в IB;
  2. Перейдите в Photoshop, создайте изображение 88px x 88px с именем @2x;
  3. Создайте еще одно изображение размером 44 x 44 пикселя без добавления @2x;
  4. В своем IB или коде установите для изображения обычное имя, которое без @2x в имени изображения. Система будет правильно отображать обычное изображение и изображение @2x.
person Kevin    schedule 28.07.2013
comment
Отлично, это все, что мне было нужно. Спасибо за помощь. - person Jason Renaldo; 28.07.2013

Для создания кнопки размером 44x44 IB вам понадобятся два изображения:

  1. Изображение.png размером 44x44
  2. [email protected] размером 88x88

iOS автоматически выберет правильный файл, когда вы используете базовое имя

Чтобы загрузить это изображение в код, вы просто используете строку ниже:

[UIImage imageNamed:@"Image"]

и снова iOS получит правильное изображение

person Michał Banasiak    schedule 28.07.2013
comment
Спасибо за разъяснение соглашений об именах для вызова UIImage. - person Jason Renaldo; 28.07.2013
comment
Убедитесь, что вы используете ту же оболочку. Иногда изображение не может быть загружено. Поэтому, если изображение называется «MyImage.png», используйте imageNamed:@"MyImage" - person Rob van der Veer; 28.07.2013