Как правильно масштабировать изображения (не ресурсы), чтобы iPhone Retina правильно отображал в представлении? - PullRequest
3 голосов
/ 08 июля 2011

У меня есть UIImage, либо с камеры устройства, либо загруженный с URL.Скажем, разрешение 800x600.

Я хочу отобразить масштабированное изображение в UIImageView, которое имеет размер 200x150, и у меня есть правильный код масштабирования изображения.

Итак, я просто масштабирую UIImage до UIImageViewframe.size (снова 200х150).На дисплее без сетчатки он выглядит нормально, но на дисплее с сетчаткой он выглядит плохо, как будто уменьшенное изображение было увеличено, потому что фактический кадр в пикселях 400x300.

Вопрос в том, должен ли я вручнуюумножьте frame.size.width / height на 2, когда это дисплей сетчатки, когда я изменяю размер, чтобы он был изменен до 400x300, или есть встроенная функция для этого?

Поскольку UIImage нересурс на устройстве, у меня нет опции @2x.

Ответы [ 2 ]

5 голосов
/ 08 июля 2011

Во всех случаях сохраняйте размер кадра при просмотре изображения 200x150.В случае отсутствия дисплея сетчатки масштабируйте изображение до 200x150.На устройствах отображения сетчатки масштабировать его до 400x300.Установите contentMode для UIImageView на UIViewContentModeScaleAspectFit.

0 голосов
/ 08 июля 2011

Когда вы получаете изображение, скажем, 800x600, вы не можете создать UIImage, масштабированный до 400x300, и временно сохранить его с расширением @ 2x, возможно, в папку «Документы» или папку tmp, а затем сохранить другой UIImage, масштабированный до 200x150 и сохраните его без @ 2x в том же каталоге.

...