问题标签 [asset-catalog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1167 浏览

ios - 资产目录 UIImage 基于设备和方向的大小不正确

我正在尝试在启动时在我的应用程序中显示的第一个视图显示背景图像,该图像与 LaunchImage 显示的图像相同。

我已经正确设置了 LaunchImage 资产目录,并且它在启动时正确显示。我正在使用 iPad 模拟器并将其设置为横向。

但是,我的背景图像不仅方向错误,而且尺寸错误。

考虑以下代码......

第一个 NSLog 正确地声明了 1024x768。

然而,第二个 NSLog 状态为 320x480。这只是资产目录中的第一张图片,即 iPhone LaunchImage。

这里有什么想法吗?

更新:

我在网上看到了很多关于图像命名约定的答案,下面的第一个答案足以列出所有这些。对于任何需要这些的人来说,这是一个很棒的清单。

但是,资产目录的重点是存储每个设备的所有图像,iOS6 或 7,视网膜与否,以及用于哪个方向。如果每次显示图像时仍然需要检查什么设备、方向、是否是视网膜,那么资产目录的意义何在?我认为这是他们的原因之一。

我应该注意到,这是我希望过去在我的应用程序中工作的。然后我更改了资产目录中的图像,一切仍在工作。但是,我决定将图像改回原始图像,这就是一切都破裂的地方。我已经尝试清理构建,甚至删除派生数据并重新启动 xCode。不去。

我在可用的资产目录中有正确的文件。但是,您会注意到,正如您所期望的那样,它们并没有按照 Alexander Kostiev 的回答中所述的文件名保存。相反,它们以其中的尺寸命名。但是它们在 json 中被正确引用,因为我将在接下来发布...

正如您在顶部的第四项中看到的那样,是 iPad 的 json,在纵向布局中没有视网膜显示。我已确认此文件存在于资产目录目录中,并且它实际上是我在预览中查看的正确图像。

还有什么想法吗?

更新 2:

我现在也尝试添加名为 background-Landscape~ipad.png 和 background-Portrait~ipad.png 的文件。我现在使用以下内容加载图像...

我试过背景和背景.png。但是没有显示图像,并且 image.size 为 0,0。IE。UIImage imageNamed 给了我一个零图像。

我现在完全不知所措。

0 投票
1 回答
356 浏览

ios - 除了启动图像和应用程序图标之外,我可以使用资产目录来管理图像吗?

我如何使用资产目录来定义启动图像和应用程序图标以外的图像。我添加了新的图像集,但它没有在不同的设备分辨率上显示正确的图像。我已经看到为新图像集生成的内容 json。我找到了这个。

基本关注的是屏幕尺寸而不是操作系统版本。为什么有最低操作系统版本?我需要屏幕尺寸。如果我走错方向,请帮助我。

0 投票
4 回答
3668 浏览

ios - 我可以访问文件系统上的 xcassets 目录吗?

我想动态加载 xcassets 目录中的所有图像。这些文件被命名为 StockPhoto#,其中 # 是列表中的编号。如果我可以在运行时访问我的 StockPhotos.xcassets 以计算目录中的所有文件,我就不必在每次添加新的库存照片时手动加载文件。

如果这个问题还有其他解决方案,我对此持开放态度,但我也很好奇文件系统如何处理 xcassets - 它们只是引用一组文件,还是实际上是它们自己的目录。这方面的信息很少。

0 投票
1 回答
2375 浏览

xcode - Xcode 5.1 + 资产目录 + 存档 = AppIcon 无效图像路径

在尝试验证我的存档应用程序时,我一直在阅读很多关于“无效图像路径”验证失败的消息。我的问题是,我已经在使用资产目录,但由于某种原因,它现在无法识别 AppIcon 图像集。

这是我在 Xcode 5 中的资产目录的屏幕截图: 这是我在 Xcode 5 中的资产目录的屏幕截图:

这是我当前的目标设置,如果我单击 AppIcon 的小右箭头,它会将我带到正确的图像: 在此处输入图像描述

这是我在验证我最近创建的存档后遇到的错误: 在此处输入图像描述

存档也没有图标: 在此处输入图像描述

这是我的 info.plist 文件内容:

这是 AppIcon 图标集的 Contents.json 文件的内容:

我尝试了以下方法但没有成功:

1) 删除 AppIcon 图像集并通过将其添加到 Xcode 中并将图像拖动到所有占位符来从头开始创建一个新图像集。2)从 info.plist 中删除了 CFBundleIcons 3)从 info.plist 中删除了 CFBundleIcons~ipad(我添加了这个,因为我的应用程序不会在货架上显示 iOS 7+ 中的默认报亭图标,这修复了它。4)从上面删除了两个键,但仍然出现错误,包括缺少键/值表单报摊图标绑定类型。5) 尝试针对 iOS 7.0 而不是 iOS 6.0。

我不知道为什么会突然发生这种情况。我在想可能是因为我将 Xcode 更新到了 5.1 版(5B130a)?我正在运行我认为最新的 OSX 10.9.2。

我确实找到了这个Invalid Image Path - No image found at the path。CFBundleIcons Xcode 5这听起来很像我的情况。我已确保实际资产目录是目标的一部分(参见第一个屏幕截图),但 OP 谈到确保每个图像都是目标的一部分?

更新:添加已编译的 Info.plist 内容。我无法打开它,因为它被压缩了,所以我抓住了一个屏幕截图。我可以看到一些对图像的引用,但不知道在 Xcode 项目中的哪里可以找到这些?我试图搜索一些名称,但没有产生任何结果。

在此处输入图像描述

我的构建日志看起来不错,但这个警告很突出:

不知道这意味着什么,但我删除了 app-info.plist 文件,创建了一个新文件并从原始 app-info.plist 文件复制到 XML 中(这是基于一个有效的开源项目)。

有什么建议可以尝试吗?谢谢!

0 投票
1 回答
224 浏览

ios - XCode 5.1 资产目录大小

我为我的 ios cordova 应用程序创建了一个资产目录。.xcassets 文件夹似乎正在工作,但是我无法从资源文件夹中删除图像文件。这导致我的应用程序大小为 14.5 MB(看起来很多)。我怎样才能让我的图像只有一个位置?

在此处输入图像描述

我在 Resource 文件夹和 Images-2.xcassets 中有图像(我认为)

0 投票
1 回答
1689 浏览

ios - 获取资产目录文件夹中所有图像的数组

在 iOS 中,是否可以获得位于资产目录文件夹中的一组图像(或图像名称)?

如果是这样,怎么做?

我不太确定为什么会对此投反对票。我真的不知道从哪里开始。

我的替代方法是创建文件夹中所有文件的 plist,但这似乎是多余的。

我不能添加任何代码,因为我会添加什么?

很想得到关于为什么会有反对票的反馈。

0 投票
1 回答
1880 浏览

ios - 项目中未使用资产目录

我有一个使用资产目录的项目,最近我没有进行任何更改,只是没有显示图像。它显示此错误:

我知道这已经在这里得到了回答: 资产目录错误:CUICatalog:找不到名称的再现,但解决方案是使用 Cocoapods,但我根本没有在我的项目中使用 Cocoapods,我什至没有它安装在我的 Mac 上。

0 投票
2 回答
9537 浏览

ios - 引用资产目录中文件夹中的图像

在资产目录中,您可以创建文件夹。

在文件夹中,所有图像名称都必须是唯一的。

如果您有一个名为的图像myImage并且您尝试命名另一个图像myImage,那么它将自动重命名为myImage-1.

但是,如果您有两个文件夹,那么您可以在不同的文件夹中拥有相同名称的图像。

那么,一定有办法引用这些吗?

有谁知道如何通过资产目录中的文件夹和图像名称来引用图像?

0 投票
1 回答
1682 浏览

xcode - 在运行时将图像保存在资产目录中

我必须在后台进程中从后端下载新图像,我需要保存它们以供以后在应用程序中使用。

另一方面,原始应用程序图像位于资产目录中,当我添加新图像时,必须从资产目录访问所有图像。

我尝试将图像添加到目录的应用程序,但是当我必须加载任何图像时,应用程序不知道区分资产目录中的图像和其他图像,我认为这不是最好的解决方案

我不知道如何在运行时将图像添加到资产目录,或者我是否必须尝试其他方式来支持这一点。

任何帮助我都非常感激

非常感谢!

0 投票
0 回答
590 浏览

objective-c - 以编程方式访问资产目录中的图像的任何新方法?

我正在使用带有 Xcode 5.1 的资产目录并为 iOS 7 及更高版本制作应用程序。资产目录背后的想法是,您可以随心所欲地调用图像,并且目录将图像与正确的设备和方向相关联。在后台,Xcode 显然会按照这里提到的方案重命名文件。但是,似乎存在以编程方式访问文件的稳定问题(此处此处或特别是此处)而不会遇到内存问题(例如此处)。

所以我的目录中有资产,并且启动图像被正确调用。但我也想使用启动图像作为背景图像,所以我需要以编程方式调用它们。原则上,如果我正确理解资产目录的概念,我需要做的就是这些事情:

并且操作系统应该从 xcassets 启动映像集中选择正确的启动映像。但是,这显然只有在使用图像的常规名称时才有效,例如Default-Portrait@2x~iPad.png,这会破坏资产目录的一个声称的优势(您喜欢的任何名称),并且可能会遇到上述内存问题。

在这一点上,在引用的帖子几个月后,有没有更好的解决方案?我知道我可以摆脱资产目录并直接访问文件,或者围绕代码添加大量工作,或者将目录与官方文件名一起使用,但这些“解决方案”都不是本着资产目录应该做的。