Если вы назначаете изображения в Интерфейсном Разработчике и устанавливаете свойство изображения для UIImageView
, например, image@2x.png
, iOS не будет знать, что это изображение с высоким разрешением "2x". Фактически, на дисплее сетчатки iOS будет искать изображение с именем image@2x@2x.png
. Поскольку он не найдет его, он установит масштабный коэффициент изображения на 1,0.
Свойство contentMode
(просто «режим» в XCode) будет определять, происходит ли какое-либо масштабирование изображения в соответствии с ограничениями UIImageView. Возможно, вы захотите установить режим «Подгонка по размеру», чтобы масштабировать изображение с высоким разрешением, необходимое для отображения как на сетчатке, так и на сетчатке. В общем случае изображение будет отображаться так, как показано в Интерфейсном Разработчике.
Если вы используете UIImage imageNamed
или аналогичную функцию для загрузки изображения и просто указываете image
(где «image.png» не существует, а «image@2x.png» существует), тогда iOS будет фактически находить изображение на дисплее без сетчатки, хотя масштабный коэффициент будет 1,0. Как и раньше, вам нужно масштабировать его в соответствии с вашим видом. Изображение будет нормально работать на устройстве с сетчаткой, а коэффициент масштабирования будет установлен на 2,0, поскольку iOS сначала ищет изображение «2x», и не имеет значения, существует другой файл или нет.
Это из документации Apple по imageNamed
:
На устройстве под управлением iOS 4 или более поздней версии поведение идентично, если
Экран устройства имеет масштаб 1,0. Если экран имеет масштаб 2,0,
этот метод сначала ищет файл изображения с тем же именем файла
с добавленным к нему суффиксом @ 2x. Например, если имя файла
Кнопка, он сначала ищет кнопку @ 2x. Если он находит 2x, он загружает
это изображение и устанавливает свойство масштаба возвращенного объекта UIImage
до 2.0. В противном случае он загружает неизмененное имя файла и устанавливает масштаб
свойство до 1,0. См. IOS App Programming Guide для получения дополнительной информации о
поддержка изображений с различными масштабными коэффициентами.
Если это вообще возможно, вам действительно следует включать изображения как на сетчатку, так и на сетчатку. Использование изображений с более высоким разрешением, чем необходимо, отрицательно влияет на память и производительность.