На 8 и 8 ПЛЮС изображение нарезки одинаково сильно отличается - PullRequest
0 голосов
/ 06 марта 2019

Вот пример проекта

Задача

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

И я использую нарезку изображений в Assets.xcassets для достижения этой цели.Размер изображения можно изменить должным образом, однако он отображается немного по-разному.

Исходное изображение

Screenshot 1

Срез изображения

Простопросто нарежьте изображение из вертикального центра.

Screenshot 2 Screenshot 3

Раскадровка

Режим содержимого установлен на Масштабировать доЗаполнить

Ограничение высоты равно его ограничению по ширине, умноженному на 0,8

Screenshot 4 Screenshot 5

Результат

Я думаю, что это должноотображать практически одинаковые изображения на разных устройствах.Потому что все то же самое, за исключением ресурсов изображения (2x, 3x).

Однако результат не тот, который я ожидаю.Изображение кажется немного раздавленным на iPhone 8 PLUS.

Screenshot 6

Наконец

Я использую Mojave с Xcode 10.1 (10B61).

Кто-нибудь знает, в чем причина.А как правильно сделать изображение вертикально растянутое?

1 Ответ

0 голосов
/ 06 марта 2019

Причина, по которой это выглядит «сжато», заключается в том, что изображение растягивается по горизонтали.

Ваше нарезание позволяет верхней части оставаться постоянной высоты, но не постоянной (или пропорциональной) ширины.

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

enter image description here

Вы можете попробовать вырезать исходное изображение только до верхней части.Установите ограничения для этого вида изображения, чтобы они оставались пропорциональными, а затем используйте вид сплошного цвета (или просто UIView с соответствующим цветом фона) в качестве нижнего раздела «вертикальное растяжение».

...