Подтвердить что ты не робот

Быстрые игровые площадки с UIImage

Я работаю с Xcode 6, и я пытаюсь воссоздать код, демонстрационный во время сеанса 401 "Что нового в Xcode 6". Я добавил изображение в Images.xcassets(называемое Sample), и в файле игровой площадки я пытаюсь получить доступ к этому изображению, как показано.

Мой код выглядит следующим образом (например, демо):

var sample = UIImage(named: "Sample")

Однако я не могу заставить его работать, как демо. Я что-то пропустил?

4b9b3361

Ответ 1

  • Откройте файл .playground в Finder.
  • Создайте папку под названием Ресурсы рядом с ней.
  • Добавьте любые изображения, которые вы хотите в эту папку.
  • На игровой площадке нажмите opt-cmd-1, чтобы открыть File Inspector. Вы должны увидеть площадку справа. Если вы его не выбрали, нажмите cmd-1, чтобы открыть Навигатор проекта и щелкните файл детской площадки.

File Inspector

  1. В разделе "Путь к ресурсам" выберите "Относительно игровой площадки"
  2. Щелкните значок папки внизу и выберите папку Ресурсы, созданную ранее.

Теперь у вас должен быть комплект, который вы можете использовать со стандартным NSImage (named: "filename_without_extension" ):

Working nsbundle image

Примечание. Поскольку Xcode часто перезаписывает папку .playground, я рекомендую использовать этот метод, поэтому папка ресурсов не будет постоянно удаляться и повторно создаваться.

Ответ 2

Посмотрите на библиотеку разработчиков iOS- > Помощь на игровой площадке и найдите "Файлы ресурсов", и вы найдете ответ

1, Откройте .playground

2, покажите навигатор проекта, выбрав "Вид" > "Навигаторы" > "Показать навигатор проекта".

3, перетащите изображения в Ресурсы

Как следует:

enter image description here

Ответ 3

У меня также были проблемы с этим.

К сожалению, ответ Криса не работал у меня. Я подозреваю, что, возможно, более поздняя бета-версия Xcode 6 могла удалить эту настройку.

Здесь доступно решение от Xcode 6.0 beta 4 (6A267N), доступное 21 июля 2014 года. Я бы предположил, что это соответствует опции "Внутренняя игровая площадка" ранее. Именно здесь папка "Ресурсы" находится внутри пакета игровой площадки.

Вот как это установить.

Использование Finder - или если вы похожи на меня и используете удивительный Path Finder - выберите правильный и выберите Показать содержимое пакета следующим образом:

enter image description here

Это показывает папку Ресурсы:

enter image description here

Копирование файлов изображений в эту папку сделает бизнес:

let imageNames = ["back-button", "background", "bg_top"]
let images = imageNames.map { UIImage(named: $0) }

enter image description here

Ответ 4

Однако я не могу заставить его работать, как демо. Я что-то пропустил?

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

var sample = UIImage(named: "/Users/my_user_name/Desktop/Image1234.jpg")

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

Ответ 5

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

var bundle = NSBundle.mainBundle()
var path = bundle.resourcePath

По умолчанию для меня было:

/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Agents

Ответ 6

Мне было сложно получить эту настройку для игровой площадки iOS, в отличие от игровой площадки OS X. Попытка сделать это с помощью пучков и относительных путей делает его более сложным.

Если вы просто хотите быстро получить изображение, вы также можете использовать абсолютный путь к файлу:

В iOS:

# iOS
let absoluteImagePath = "/absolute/path/to/image.png"
let image = UIImage(contentsOfFile: absoluteImagePath)

И на OS X

# OS X
let absoluteImagePath = "/absolute/path/to/image.png"
let image = NSImage(contentsOfFile: absoluteImagePath)

Ответ 7

Как и в Xcode 8 Beta 1, вы можете использовать Image Literals для импорта изображения на игровой площадке Xcode:

Начните вводить image, чтобы добавить литерал изображения:

Быстрое изображение

Выберите (или просмотрите) изображение:

Изображение

См. изображение в строке:

Inline

Ответ 8

Это то, что сработало для меня на Xcode Version 6.1.1.

  • Создайте файл игровой площадки в том же каталоге, что и главная раскадровка.

    Folder Structure

  • Откройте панель "Утилиты" для файла Playground и нажмите стрелку вправо в разделе Resource Path, чтобы добавить изображения в этот каталог.

    Resource Path for Playground

  • Проверьте изображение в файле игровой площадки.

    Result

Ответ 9

На игровой площадке iOS с XCode 6 beta 5 (и, возможно, позже) вы можете увидеть изображение внутри пакета:

  • На игровой площадке нажмите Cmd + Opt + 1 и щелкните стрелку под Пути ресурсов (это откроет Finder)
  • Поместите изображение в эту папку
  • Доступ к нему с помощью

    let img = UIImage(named: "logo.png", inBundle: NSBundle.mainBundle(),
                      compatibleWithTraitCollection: nil)
    

    или

    let path = NSBundle.mainBundle().pathForResource("logo", ofType: "png")
    let img = UIImage(contentsOfFile:path)
    

    или в Swift 4:

    let path = Bundle.main.path(forResource:"logo", ofType: "png")
    let img = NSImage(contentsOfFile:path!)
    

Ответ 10

Используя XCode 6.3.1 и запустив игровую площадку в полном симуляторе (iOS), я должен был сделать следующее:

  • Найдите ваш .playground файл в finder
  • Щелкните правой кнопкой мыши → показать содержимое пакета
  • Если он еще не существует, создайте папку с именем Ресурсы внутри пакета
  • Добавьте свое изображение там

Затем просто создайте экземпляр let i = UIImage(named: "filename.png")

Ответ 11

Для Xcode 9:

  • Выберите папку Ресурсы
  • Щелкните правой кнопкой мыши " Добавить файлы в" Ресурсы ""
  • Используйте его как: let image = UIImage(named: "no")

введите описание изображения здесь Ресурсы