UIImage的Swift游乐场

我正在使用Xcode 6,并且正在尝试在会话401“Xcode 6中的新增function”中重新演示代码。 我已经添加了Images.xcassets图像(称为示例),并在操场文件中试图访问此图像,演示。

我的代码如下(如演示):

var sample = UIImage(named: "Sample") 

但是,我不能像演示一样工作。 我错过了什么吗?

  1. 在Finder中打开.playground文件。
  2. 在旁边创build一个名为Resources的文件夹。
  3. 添加你想要的任何图像到这个文件夹。
  4. 在操场上按下opt-cmd-1打开File Inspector。 你应该看到右边的操场。 如果您没有select它,请按cmd-1打开“项目导航器”,然后单击操场文件。

文件检查器

  1. 在“资源path”下select“相对于游乐场”
  2. 点击下面的文件夹图标,然后select之前创build的资源文件夹。

你现在应该有一个可以和标准NSImage一起使用的bundle(名字叫“filename_without_extension”):

工作nsbundle图像

注意:因为Xcode会经常覆盖.playground文件夹,所以我build议使用这个方法,这样资源文件夹就不会不断的被删除并重新创build。

看看iOS Developer Library-> Playground Help并search“资源文件”,你会发现答案

1,打开.playground

2,通过select视图>导航器>显示项目导航器来显示项目导航器。

3,将图像拖到资源

如下所示:

在这里输入图像说明

我也遇到了一些麻烦。

不幸的是,克里斯的答案不适合我。 我怀疑Xcode 6以后的beta版本可能已经删除了这个设置。

以下是2014年7月21日发布的Xcode 6.0 beta 4(6A267N)的解决scheme。我猜想这个对应于之前的“Inside playground”选项。 这就是资源文件夹在游乐场包内的地方。

这是如何设置的。

使用Finder – 或者如果你像我一样使用超棒的Path Finder – 右键select并selectShow Package Contents ,如下所示:

在这里输入图像说明

这揭示了包资源文件夹:

在这里输入图像说明

将图像文件复制到该文件夹​​将执行业务:

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

在这里输入图像说明

但是,我不能像演示一样工作。 我错过了什么吗?

我不知道你需要把图像引用到它的名字,但是我通过指定图像的完整path来获得相同的代码,例如:

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

不得不使用完整的path似乎比它应该更复杂,但它的工作原理,让我转移到更有趣的问题。

您可以在操场上使用这些命令找出resourcePath的path:

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

我的默认是:

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

我很难得到这个设置的iOS操场,而不是OS X操场。 试图用捆绑和相对path来做这件事情会变得更加复杂。

如果您只想快速获取图像,也可以使用绝对文件path:

在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) 

从Xcode 8 Beta 1开始,您可以使用图像文字将图像导入到Xcode游乐场:

开始inputimage来添加图片文字:

Swift图像文字

select(或浏览)您的图像:

图片

在线查看您的图片:

一致

这是Xcode版本6.1.1上的工作。

  1. 在主故事板的同一目录下创buildPlayground文件。

    文件夹结构

  2. 打开Playground文件的“实用工具”窗格,然后单击“ Resource Path部分中的右箭头以在该目录中添加图像。

    游乐场的资源路径

  3. 在Playground文件中testing图像。

    结果

使用XCode 6.3.1并在完全模拟器(iOS)中运行的操场我必须做到以下几点:

  1. 在finder中find你的.playground文件
  2. 右键单击它 – >显示包内容
  3. 如果它尚不存在,请在包中创build一个名为Resources的文件夹
  4. 在那里添加你的图像

然后用let i = UIImage(named: "filename.png")实例化

在XCode 6 beta 5的iOS操作系统上(可能更高版本),您可以在软件包中看到图像:

  1. 在操场上按Cmd + Opt + 1并点击资源path下的箭头(这将打开Finder)
  2. 把你的照片到这个文件夹
  3. 访问它与任一

     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!)