Быстрые игровые площадки с UIImage
Я работаю с Xcode 6, и я пытаюсь воссоздать код, демонстрационный во время сеанса 401 "Что нового в Xcode 6". Я добавил изображение в Images.xcassets(называемое Sample), и в файле игровой площадки я пытаюсь получить доступ к этому изображению, как показано.
Мой код выглядит следующим образом (например, демо):
var sample = UIImage(named: "Sample")
Однако я не могу заставить его работать, как демо. Я что-то пропустил?
Ответы
Ответ 1
- Откройте файл .playground в Finder.
- Создайте папку под названием Ресурсы рядом с ней.
- Добавьте любые изображения, которые вы хотите в эту папку.
- На игровой площадке нажмите opt-cmd-1, чтобы открыть File Inspector. Вы должны увидеть площадку справа. Если вы его не выбрали, нажмите cmd-1, чтобы открыть Навигатор проекта и щелкните файл детской площадки.
![File Inspector]()
- В разделе "Путь к ресурсам" выберите "Относительно игровой площадки"
- Щелкните значок папки внизу и выберите папку Ресурсы, созданную ранее.
Теперь у вас должен быть комплект, который вы можете использовать со стандартным 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")
Ресурсы