我正在使用Xcode 6,并且我正在尝试重新创建在会话401期间演示的代码" Xcode 6"中的新功能。我已将图像添加到Images.xcassets(称为Sample),并在playground文件中我试图访问此图像,如演示一样。
我的代码如下(如演示):
var sample = UIImage(named: "Sample")
但是,我无法像演示那样使用它。我错过了什么吗?
答案 0 :(得分:93)
查看iOS开发人员库 - > Playground Help并搜索“资源文件”,您将找到答案
1,打开.playground
2,选择View>显示Project导航器。导航器>显示Project Navigator。
3,将图像拖到资源
如下:
答案 1 :(得分:64)
您现在应该有一个可以与标准NSImage一起使用的包(名为:“filename_without_extension”):
注意:由于Xcode会经常覆盖.playground文件夹,因此我建议使用此方法,以便不会不断删除和重新创建资源文件夹。
答案 2 :(得分:32)
我也遇到了一些麻烦。
不幸的是,克里斯的回答对我不起作用。我怀疑Xcode 6的后续版本可能已经删除了这个设置。
这是Xcode 6.0 beta 4(6A267N)于2014年7月21日发布的解决方案。我猜这与之前的“Inside playground”选项相对应。这是Resources文件夹本身在playground包中的位置。
以下是如何设置它。
使用Finder - 或者如果您像我一样使用了真棒Path Finder - 请选择显示包装内容,如下所示:
显示包资源文件夹:
将图像文件复制到该文件夹即可开展业务:
let imageNames = ["back-button", "background", "bg_top"]
let images = imageNames.map { UIImage(named: $0) }
答案 3 :(得分:10)
答案 4 :(得分:4)
从Xcode 8 Beta 1开始,您可以使用Image Literals将图像导入Xcode游乐场:
开始输入__setattribute__
以添加图片文字:
选择(或浏览)您的图片:
以内联方式查看您的图片:
答案 5 :(得分:3)
然而,我无法让它像演示一样工作。我错过了什么吗?
我不确定在哪里只需要使用名称就可以将图像引用到它,但我通过指定图像的完整路径来获得相同的代码,例如:
var sample = UIImage(named: "/Users/my_user_name/Desktop/Image1234.jpg")
必须使用完整路径似乎比它应该更复杂,但它起作用,它让我转向更有趣的问题。
答案 6 :(得分:3)
您可以在playground中使用以下命令找到resourcePath的路径:
var bundle = NSBundle.mainBundle()
var path = bundle.resourcePath
默认为:
/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Agents
答案 7 :(得分:3)
我很难在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)
答案 8 :(得分:2)
在XCode 6 beta 5(可能稍后)的iOS游乐场上,你可以看到包中的图像:
使用
访问它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!)
答案 9 :(得分:2)
这对Xcode Version 6.1.1起了作用。
在主故事板的同一目录下创建Playground文件。
打开Playground文件的“实用工具”窗格,然后单击Resource Path
部分中的右箭头,将您的图像添加到该目录中。
在Playground文件中测试图像。
答案 10 :(得分:1)
使用XCode 6.3.1并在完整模拟器(iOS)中运行playground我必须执行以下操作:
然后只是实例化
let i = UIImage(named: "filename.png")
答案 11 :(得分:0)
我不知道为什么它不能以简单的方式处理 PDF 图像。
我必须添加此扩展程序才能将 PDF 图像加载到我的 Playground 中:
extension UIImage {
static func fromPDF(_ url: URL) -> UIImage? {
var image: UIImage?
guard
let doc = CGPDFDocument(url as CFURL),
let page = doc .page(at: 1)
else { return nil }
let pageRect = page.getBoxRect(.mediaBox)
let renderer = UIGraphicsImageRenderer(size: pageRect.size)
image = renderer.image { ctx in
UIColor.clear.set()
ctx.fill(pageRect)
ctx.cgContext.translateBy(x: 0.0, y: pageRect.size.height)
ctx.cgContext.scaleBy(x: 1.0, y: -1.0)
ctx.cgContext.drawPDFPage(page)
}
return image
}
}
// Given the file "myImage.pdf" was added to your Playground's Resources folder.
let image = UIImage.fromPDF(#fileLiteral(resourceName: "myImage.pdf"))