#ios #swift #xcode
#iOS #быстрый #xcode — код
Вопрос:
Я прочитал информацию об изображении с именем 1x, 2x и 3x для устройств ios, но не приведет ли это к искажению масштабирования / изображения при установке его на весь экран?
Например, 3x может обрабатываться многими устройствами iOS, но если вы переходите от одного к другому, разрешения экрана / дисплеи не являются идеальным масштабом 1 к 1, поэтому, если я спроектировал 3-кратное изображение так, чтобы оно идеально соответствовало, скажем, iPhone 12, если другое устройство использует 3-кратное изображение, но с при другом соотношении сторон экрана фоновое изображение, подходящее к экрану, тогда было бы искажено, верно?
Есть ли способ избежать этого? В некоторых предложениях говорится, что есть изображение для каждого устройства / разрешения и выберите это изображение соответствующим образом, но существует длинный список устройств, и это кажется излишним и утомительным решением. Должно быть что-то более элегантное, если я не ошибаюсь.
Комментарии:
1. Это не будет искажено. Просто сделайте 1x, 2x и 3x, а затем позвольте Xcode обработать все остальное.
2. Хороший комментарий и отличный ответ. В чем конкретно заключается проблема? Можете ли вы опубликовать что-нибудь, что я мог бы дублировать? Я могу сказать, что вы обеспокоены изображениями… означает ли это экран запуска? Может
UIImageView
быть , а ? Или что-то более детальное? Итог — НЕТ , вам НЕ нужно изображение для каждого устройства / разрешения. Ни за что. Но без более подробной информации о том, в чем заключается ваша истинная проблема? Мне трудно помочь.3. Моя проблема в том, что я хочу использовать изображение в качестве фонового изображения для приложения. Я хочу, чтобы он заполнял весь экран, независимо от устройства (iPhone или iPad). Моя проблема в том, что если у меня есть только одно фоновое изображение для ВСЕХ этих устройств, названное как 1x, 2x и 3x, каждое из устройств получит соответствующее. Однако соотношения сторон во всех них не являются точными, поэтому, например, 2x на iPhone и iPad, если я заблокирую его на размер экрана с помощью кода / ограничений, один будет искажен. То же самое с масштабированием для заполнения. При подгонке по аспекту где-то будет мертвое пространство. Заливка по аспекту будет обрезана.
4. Продолжая свой ответ, я просто не хочу никаких искажений, растяжений, обрезки и т.д., Но с минимальным количеством этих 1x, 2x, 3x изображений. Похоже, что единственный ВЕРНЫЙ способ избежать этого — создать фоновые изображения 1x, 2x и 3x для каждого соотношения сторон, проверить, какое соотношение сторон имеет устройство, и назначить соответствующее фоновое изображение. Извините за отсутствие подробностей в исходном вопросе.
5. Если вы не хотите никакого масштабирования или обрезки, вам нужно будет создать множество изображений. Нет другого способа, чтобы все изображение могло заполнять экраны разного размера.
Ответ №1:
Вам необходимо сохранить соотношение сторон изображения, когда оно масштабируется в соответствии с UIImageView. Вы можете сделать это, установив режим просмотра содержимого изображения в положение «Подгонка по размеру» или «заливка по размеру» в зависимости от ваших требований.