2017-02-13 3 views
0

Я хочу использовать разрешение как средство для реализации изображений для приложения iOS.Как реализовать изображения для разных разрешений

IOS, имеет следующие разрешения для современных дневных устройств:

iphone 5/SE: 640x1136
iphone 6/7: 750x1334
iphone 6/7 +: 1242x2208
Ipad мини/воздуха: 1536x2048
ipad pro: 2048x2732


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

Я изо всех сил пытаюсь реализовать это в xcode с помощью наборов изображений. Я могу создать 1 набор изображений, и у него есть 3 слота для iphone, а также 3 слота для ipad. Тем не менее, это только удовлетворяет 3 из 5 изображений, которые я хочу создать:

iphone 6/7 @ 2x, iphone 6/7 + @ 3x и ipad pro на 2x.

Есть ли способ реализовать дополнительные слоты для iphone 5 и меньших Ipads?

Я не смог найти способ, поэтому я думаю, что я должен был бы использовать второй набор изображений, чтобы добавить 2 недостающих резолюций изображения. Тогда это потребует от меня кода внутри, иметь viewcontroller, загружать разные изображения на основе разрешения устройства.

Я согласен с этим дополнительным требованием. Мой вопрос будет в том, что это правильный способ реализации этой стратегии? Как бы вы это реализовали? И какие могут быть лучшие стратегии?


Примечания: То, что я пытаюсь избежать ограничивает число ограничений, необходимых для получения мнения выглядеть так, что я хочу. Я начал с приложения, и я использовал 2 изображения на основе соотношения сторон, и я думаю, что это здорово, но iphone 4 выбрасывает все. Затем я узнал, что, возможно, мне не стоит беспокоиться о iphone 4, поскольку он устарел. Поэтому я либо собираюсь разработать интерфейс с нуля, используя метод 2-х изображений, либо попытаюсь использовать этот метод 5 изображений с использованием разрешения.

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

ответ

0

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

а) Создать набор изображения включает в себя высокое разрешение, средний и низкий один, может быть что-то вроде этого: 1x: 640x1136, 2x: 1242x2208 и 3x: 2048x2732

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

UIGraphicsBeginImageContext(self.theView.frame.size); 
[[UIImage imageNamed:@"backgroundImageSet"] drawInRect:self.view.bounds]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
self.theView = [UIColor colorWithPatternImage:image]; 

Надеюсь, это поможет!

+0

Несколько вещей, iphone 5/SE - это устройство @ 2x, поэтому я не понимаю, почему вы добавили бы это разрешение в 1x. Также 5 изображений не ограничиваются только фоновым изображением. Наконец, я не думаю, что я упоминал об этом, но все мои изображения будут загружены в раскадровку и изображение. Исключение, где требуется код, основано на устройстве, мне может потребоваться изменить изображение в соответствии с разрешением для iphone 5/SE и меньшими Ipads. Я бы использовал 5 изображений, так что мне не нужно изменять их размер в коде. Спасибо за ответ. что со всеми [] является объективной задачей? – Discoveringmypath

+0

Я думаю, вы должны объяснить более четко и с большей согласованностью, что вы хотите сделать. Теперь я не уверен, что вы хотите сделать, гость, что изображение с 1x: 640x1136, 2x: 1242x2208 и 3x: 2048x2732 будет хорошо работать с iPhone 5 на iPad. С другой стороны, я определенно не знаю, как выглядит ваш интерфейс, так что это то, что я сказал, если это просто «для фона». Вы также можете справиться с этим только с ограничениями, это не должно быть большим количеством ограничений, если это так. –

+0

Итак, я перечитываю свой пост, и я не вижу проблем с согласованностью, я думаю, что я довольно четко понимаю, чего я хочу. Мой комментарий - это не атака. Это я пытаюсь понять ваш ответ. С учетом сказанного ваша рекомендация по набору изображений явно ошибочна. Iphone 5 никогда не будет тянуть 1x изображение, поэтому иметь такое разрешение не имеет смысла. Я также вижу, что вы поставили разрешение ipad pro как 3x-изображение. Ipad - это 2x, поэтому он никогда не будет использовать изображение 3x. Если я не ошибаюсь, я не знаю, как ваше решение отвечает на мой вопрос. Опять же, я ценю отзывы. – Discoveringmypath

1

Пока вы не можете добавить дополнительные слоты в .xcassets, вы можете реализовать size classes в своих .storyboard файлах. Это простой подход для разработки уникального интерфейса для каждого устройства. Используя его, вы можете создать приятный интерфейс для iPhone 4 (однако он устарел, как вы указали в OP).

+0

Я использовал классы размеров для реализации различных ограничений в зависимости от категорий устройств. Если бы у меня было 5 разрешений, не было бы необходимости масштабировать их на устройство. Наверное, я пытаюсь понять, как реализовать эту стратегию. – Discoveringmypath

Смежные вопросы