Размеры изображений с каталогом активов и классами размеров для универсального приложения iOS 8?

Мое приложение в настоящее время предназначено только для iPad, я думаю, что смогу просто сделать уменьшенную версию iPhone с классом размеров «любой».

РЕДАКТИРОВАТЬ: я просто хочу использовать универсальную раскадровку, если это возможно.

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

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

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

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


person Jules    schedule 12.10.2015    source источник


Ответы (2)


<сильный>1. Ресурсы изображений. По сути, для универсальных приложений iOS (для идиом пользовательского интерфейса iPhone/iPad/AppleWatch и различных коэффициентов масштабирования дисплея) существует расширяемый способ – Каталоги объектов.

После того, как вы настроили свои ресурсы, вы можете получить доступ к своим ресурсам изображений, как обычно (через UIImage.imageNamed()), а система сделает все остальное за вас.

<сильный>2. Ограничения макета/классы размера. При работе с макетом содержимого изображений важно не то, какие изображения у вас есть, а то, как пользовательский интерфейс вашего приложения адаптируется к языку устройства, на котором оно запущено. . По крайней мере, вы можете использовать соотношение сторон ограничения макета, чтобы ваши представления изображений масштабировались пропорционально в соответствии с окружающим контекстом макета (размером экрана устройства, размером родительского представления и т. д.). Кроме того, рекомендуется использовать классы размера.

P.S. Мой ответ такой же расплывчатый, как и вопрос. Если некоторые из вышеупомянутых слишком широки, пожалуйста, не стесняйтесь общаться со мной в чате SO. Удачи.

person Arthur Gevorkyan    schedule 12.10.2015
comment
Я беспокоюсь, что xcode изменит размер изображений и потеряет четкость - person Jules; 12.10.2015
comment
Xcode определенно будет использовать pngcrush на этапе сборки, чтобы оптимизировать ваши изображения. Однако Xcode не изменит размер ваших изображений (с точки зрения размеров). Например, при назначении изображения неправильного размера для значка приложения Xcode выдаст как минимум предупреждение, чтобы вы знали, что требуется преобразование. - person Arthur Gevorkyan; 12.10.2015
comment
А как насчет других наборов изображений? - person Jules; 12.10.2015
comment
Xcode понятия не имеет, какой размер требуется, когда он видит каталог активов нестандартного назначения. Таким образом, он ничего не будет задевать по ширине и высоте. Однако UIKit может отображать ваши изображения неожиданным/непреднамеренным образом при попытке подогнать ваше графическое содержимое под соответствующие условия макета. - person Arthur Gevorkyan; 12.10.2015
comment
Да, я так и думал, так что лучше всего предоставлять большие изображения и позволять им изменять их размер? - person Jules; 12.10.2015
comment
Ни в коем случае, так как это вызывает рендеринг процессора, который занимает много времени. Кроме того, вы можете получить некоторые эффекты искажения формы. - person Arthur Gevorkyan; 12.10.2015

В iOS изображения управляются с помощью класса UIImage, а затем могут отображаться множеством способов, но в основном с помощью класса UIImageView. Класс UIImageView выполнит все необходимые изменения размера вашего изображения, сделав его векторным изображением.

  1. Вот как вы создаете образ. Файл изображения (imagename.png) хранится в ваших xcassets.

    var myImage = UIImage(named: "imagename.png")
    
  2. Вот как вы программно назначаете изображение представлению изображения, предполагая, что у вас есть выход для изображения с именем myImageView.

    myImageView?.image = myImage
    
person ICW    schedule 12.10.2015
comment
извините, я хотел добавить, что хочу использовать только раскадровки. Я отредактирую вопрос. - person Jules; 12.10.2015