Каталог программ доступа к программному обеспечению
Я знаю, что это новая функция, и это может быть невозможно, но я хотел бы иметь возможность использовать каталог активов для организации моих активов, но я получаю доступ ко всем моим изображениям программно. Как мне получить доступ к моим изображениям сейчас? Должен ли я по-прежнему обращаться к ним по именам файлов следующим образом:
[UIImage imageNamed:@"my-asset-name.png"];
Похоже, что каталог ресурсов не ссылается на расширение, поэтому было бы более эффективно обращаться к нему без ".png"?
Причина, по которой я прошу вместо проверки для себя, заключается в том, что даже после удаления моих активов и каталога активов, а затем очистки папки сборки, я все равно могу получить доступ к своим активам в своем приложении. Это мешает мне проверять каталог активов, когда я его реализую.
После просмотра каталога активов я нашел "Contents.json" для каждого актива и отформатирован так:
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x",
"filename" : "[email protected]"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Я все еще не уверен, как я должен обращаться к нему, но, может быть, это поможет?
Ответы
Ответ 1
Чтобы получить доступ к изображению из каталога активов, вам нужно только получить доступ к имени группы активов без каких-либо расширений.
Итак, если вы добавите образ с именем @"[email protected]"
в каталог активов, он создаст группу активов с именем my-button
.
Теперь все, что вам нужно сделать, это получить доступ к изображению так:
// Objective-C
[UIImage imageNamed:@"my-button"];
// Swift
UIImage(named: "my-button")
Кроме того, вы можете редактировать группу активов, переименовав ее (без переименования изображений) или изменив ее отдельные компоненты. Это позволит вам следовать более простым соглашениям об именах, а также показывать совершенно разные активы между разными UIScreen
scale
без каких-либо проверок scale
.
Чтобы включить изображения для разных размеров устройства, вам может потребоваться переключить его в подзаголовке "Устройства" в параметрах группы каталогов активов. Вот пример этого переключения (доступно щелчком правой кнопки мыши по группе).
Ответ 2
Swift
Вы можете получить ссылку на изображение в своем ресурсе catelog с помощью
UIImage(named: "myImageName")
Вам не нужно включать расширение.
Ответ 3
@RileyE на 100% прав. Однако из моих опытов также стоит отметить, что иногда ссылка каталога ресурсов для изображения может содержать конечное пустое пространство. Вероятно, вы не заметите, что с помощью раскадровки /xibs, когда автозаполнение добавит его. Но когда вы ссылаетесь на него из кода, это не так очевидно, что проблема.