如何在Xcode中将JPEG添加到资产目录?

Dav*_*unt 57 xcode assets xcode5

是否可以将除PNG文件以外的资产添加到Xcode资产目录中?

当我将JPEG文件拖到资产目录中时,UI不会接受它们.

Dav*_*unt 46

您可以通过手动编辑资产的JSON表示来添加非PNG资产.最简单的方法是复制现有资产并进行修改:

  1. 右键单击现有资产,然后选择"在Finder中显示"
  2. 复制并粘贴现有.imageset项目并重命名,例如my_image.imageset
  3. 双击新的 .imageset
  4. 删除文件夹中的所有现有图像
  5. 复制JPEG文件
  6. 编辑Contents.json文件,用filenameJPEG文件名替换键的值

你的Contents.json遗嘱看起来像这样:

{
  "images" : [
    {
      "idiom" : "universal",
      "scale" : "1x",
      "filename" : "my_image.jpg"
    },
    {
      "idiom" : "universal",
      "scale" : "2x",
      "filename" : "my_image@2x.jpg"
    }
  ],
  "info" : {
    "version" : 1,
    "author" : "xcode"
  }
}
Run Code Online (Sandbox Code Playgroud)

请务必按名称引用您的图片,不带扩展名:

[UIImage imageNamed:@"my_image"]
Run Code Online (Sandbox Code Playgroud)

这种方法适用于GIF和其他资产,因为它们只是在构建时复制到App的主要包中.值得注意的是,图像在复制到捆绑包时最终会带有png扩展名,但它们仍然可以正确加载.

  • 似乎它适用于iOS 8,但不适用于iOS 7,'渲染为'设置为'原始图像​​'也没有帮助:( (7认同)
  • 这听起来像一个丑陋而脆弱的黑客. (4认同)
  • 结果图像是pngs值得一无所知;)也就是说,如果一个人愿意减少占用的空间(通过使用JPEG而不是PNG),它不能使用资产目录 - 或者我还没有找到方法: ) (2认同)
  • 我的扩展名为PNG,但实际上不是PNG,也不会增加.`identify test.png`显示`test.png JPEG 320x838 320x838 + 0 + 0 8位sRGB 10.4KB 0.000u 0:00.000`我在项目设置中将'压缩PNG文件'设置为NO. (2认同)

Kev*_*tre 33

从Xcode 6.1开始,JPG图像现在可以添加到资产目录中.要添加的步骤是:

  1. 使用与PNG相同的命名约定将JPG导出为所需的质量(即heart.jpg heart@2x.jpg heart@3x.jpg)
  2. 将JPG从Finder拖到资产目录中,并将任何拼接或设备特定设置添加到资产
  3. 将所有JPG的'Render As'更改为'Original Image'(否则它们将在模拟器和设备上显示为空白)

  • 第3步更改渲染到'原始图像​​'为我做了诀窍.在我进行更改之前,图像不会显示在模拟器或设备上.任何人都在寻找那个选项 - 它在xcode中列出了名称,设备,宽度和高度等. (2认同)

小智 11

现在您可以在Xcode 6.0 Beta中拖放JPEG

  • 感谢@onbek-有点荒谬,我们现在还没有能够包括jpegs (4认同)
  • 不幸的是,官方Xcode 6.1中没有此功能.我无法将jpg导入资源,如果我将其强制进入资产,则图像在模拟器中显示为空白. (2认同)