Каталог программ доступа к программному обеспечению

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

[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, когда автозаполнение добавит его. Но когда вы ссылаетесь на него из кода, это не так очевидно, что проблема.