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

В реальном приложении бывает много таких дополнительных ресурсов. Для того чтобы добавить эти ресурсы в проект, необходимо, чтобы они были указаны в фазе сборки Сору Bundle Resources. Доступ к этим ресурсам во время выполнения приложения обычно должен обеспечивать ваш код (или код, подразумеваемый при загрузке nib-файла): в принципе среда выполнения приложения просто открывает ваш комплект приложения и извлекает из него требуемый ресурс. Фактически ваш комплект приложения рассматривается как папка, заполненная дополнительными файлами.

Для того чтобы добавить ресурс в свой проект, откройте навигатор проекта и выберите команду File^Add Files to [Project] или перетащите ресурс из окна Finder в навигатор проекта. При этом откроется диалоговое окно (рис. 6.16), в котором необходимо установить следующие настройки.

 

 Опции при добавлении ресурса в проект

Pиc. 6.16. Опции при добавлении ресурса в проект

 

Copy Items Into destination group's folder (If needed)

Этот флаг следует устанавливать практически во всех случаях. Он означает копирование ресурса в папку проекта. Если оставить этот флаг сброшенным, ваш проект будет искать файл, расположенный за пределами папки проекта, где он может быть непреднамеренно удален или изменен. Хранение всех ресурсов в папке проекта намного безопаснее.

 

Folders

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

 

Create groups for any added folders

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

 

Create folder references for any added folders

Папка изображается синим цветом в навигаторе проекта (этим цветом выделяются ссылки на папки); более того, она перечисляется в фазе сборки Copy Bundle Resources как папка, т.е. в процессе сборки она будет скопирована в комплект приложения как целая папка вместе с ее содержимым. Это значит, что ресурсы внутри папки должны находиться не на верхнем уровне комплекта, а во вложенной папке. Такая организация целесообразна, если у вас много ресурсов и вы хотите разделить их на категории (а не сваливать их в одну кучу на верхнем уровне комплекта приложения) или если иерархия файлов играет важную роль в вашем приложении. Недостатком такой организации является то, что код, написанный вами для доступа к ресурсу, должен быть точно настроен на вложенную папку, содержащую данный ресурс.

 

Add to Targets

Установка этого флага для цели означает, что ресурс будет добавлен в фазу сборки Сору Bundle Resources данной цели. Таким образом, вы, скорее всего, хотите проверить его в своем целевом приложении. А зачем же еще добавлять ресурс в свой проект? Если же этот флаг будет случайно сброшен и вы позднее поймете, что ресурс, указанный в навигаторе проекта, должен быть добавлен в фазу сборки Copy Bundle Resources для конкретной цели, то сможете сделать это вручную, как было описано ранее.

 

Изображения для программ iOS обычно образуют пары: одно изображение для экрана с обычным разрешением, а второе — для экрана с двойным разрешением. Для того чтобы обеспечить правильную работу методов загрузки изображений, такие пары получают специальные имена: например listen_normal .png и Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., где суффикс @2х во втором имени файла означает, что он является вариантом первого файла, предназначенным для экрана с двойным разрешением. Это может вызвать путаницу среди графических файлов в навигаторе проекта. Именно этот недостаток призваны устранить новые средства Xcode 5 — каталоги ресурсов.

Вместо того чтобы добавить файл listen_normal .png в свой проект так, как описано выше, можно использовать каталог ресурсов. Я использовал каталог ресурсов, заданный по умолчанию, — Images.xcassets. Для того чтобы отредактировать каталог, заданный по умолчанию, я щелкнул на кнопке Plus в нижней части первого столбца и выбрал команду New Image Set. В результате возник шаблон Image, предоставляющий место для изображения с одинарным разрешением и место для изображения с двойным разрешением. Затем я перетащил туда два изображения, listen_normal .png и Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., и они автоматически заняли свои места. Более того, в этом случае диалоговое окно не открывается (как на рис. 6.16); изображения автоматически копируются в папку проекта (в папку с каталогом ресурсов), цель для изображений указывать не обязательно, потому что они являются частью каталога ресурсов, который уже имеет связь с целью. В заключение я могу дать шаблону более осмысленное имя, чем Image, и более простое, чем listen_normal; назовем его Listen (рис. 6.17).

В результате моя программа теперь может загружать правильное изображение, соответствующее текущему разрешению экрана, используя его псевдоним @"Listen", не упоминая оригинальное имя (или расширение) графического файла. Более того, эти изображения не обязаны храниться порознь в комплекте приложения; для приложений iOS 7 они могут оставаться в скомпилированном каталоге ресурсов.

Другое преимущество каталогов ресурсов состоит в том, что они не обязаны подчиняться соглашениям о названиях файлов. Допустим, у меня есть два изображения, little.png и big.png, причем второе изображение предназначено для экрана с двойным разрешением. Мы не используем суффикс @2х, поэтому каталог ресурсов не может распознать, что эти два файла связаны друг с другом. Но я могу сообщить ему об этом, перетащив файл little, png на место изображения с одинарным разрешением, и файл big. png на место для изображения с двойным разрешением.

Элементы каталога ресурсов можно проверять, выбирая изображения и используя инспектор атрибутов (<Command+Option+4>). В результате на экране будут показаны имя и размер изображения. Например, в описанном выше случае, проверяя вариант изображения с одинарным разрешением, я узнаю, что оно называется little. png и в два раза меньше, чем его аналог с двойным разрешением big. png.

 Пара изображений, добавленная в каталог активов

Pиc. 6.17. Пара изображений, добавленная в каталог активов


 

 

 

Добавить комментарий