问题标签 [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.
ios - 为不同的 iOS 设备使用不同的图像分辨率
我有一张想在我的 iOS 应用程序中显示的图像。为了节省内存,我想显示仍与设备上的物理像素数相匹配的最低分辨率
例如,可以显示为设备高度 1/4 的正方形。所以尺寸如下
iPhone 4s 240x240 像素
iPhone 5/5s 284x284 像素
iPhone 6 334x334 像素
iPhone 6+ 480x480 像素
我查看了资产目录,但我没有看到任何方法可以为 iPhone 4s、iPhone 5/5s 和 iPhone 6(它们是@2x
)提供不同的图像。唯一的区别是 iPhone 6+ ( @3x
)。
我也尝试添加该Retina 4 2x
选项,但这只会为 iPhone 5/5s 提供不同的图标 - 仍然无法区分 4s 和 6。
我知道我可以根据设备以编程方式选择图像,但资产目录只会将必要的图像下载到用户设备(不确定这是否属实,不过我记得读过一些关于它的内容),从而使应用程序占用更少贮存。如果只使用一张,那么包含四张图像将是低效的。
有没有办法为每个具有不同物理像素数量的 iOS 设备使用不同的图像分辨率?
请注意,我不是要缩放图像,而是要使用正确的分辨率(每个设备都使用不同的图像),因此显示时会占用更少的 RAM。
xcode - 图像不显示在带有 iOS 9 的 iPad 2 模拟器上
在资产目录中,我为 iPhone 和 iPad 设备设置了一个名为“panda”的图像。iPhone 有 3 张图片,iPad 有 2 张图片
当我在装有 iOS 8.4 的 iPad Air、iPad Air 2、iPad Retina、iPad 2 上运行该应用程序时,图像会在点击时显示,但在装有 iOS 9 的 iPad 2 上没有任何反应!
使用版本7.0
这里是设置
// 编辑 1.0
显然这是一个错误,尚未修复
https://forums.developer.apple.com/thread/4268 https://forums.developer.apple.com/message/36854#36854
ios - 无法加载从带有标识符“com.myapp”的包中的笔尖引用的“图像”
我有一个奇怪的问题。将 Xcode 更新到第七版后(我怀疑这与此有关),我丢失了资产目录中的所有图像。
该应用程序没有在模拟器和设备上加载资产,所有图像加载都失败并显示标题消息(我的应用程序几乎是空白的)。我已经尝试删除目录并添加一个新目录,并检查故事板中损坏的引用,但一切似乎都很好。我不认为图像的格式是问题,因为在不久的过去,该应用程序运行良好。
我尝试了很多东西,清理,删除派生数据,但没有任何效果。任何帮助都非常感谢,我真的坚持这一点。
ios - 在 Xcode 7 中损坏的资产目录中使用 .jpg 图像
在 Xcode 6 中,可以在资产目录中使用 .jpg 图像,并让框架根据选择的大小类加载适当的图像。然而,现在在 Xcode 7 中,.jpg 图像根本不会出现在助手编辑器中或运行时。
我已尝试重命名资产目录的图像名称以包含 .jpg 扩展名,它可以部分工作,但是只使用了一个图像(默认的 Any/Any 图像,其余图像被忽略)。
我还尝试在 Xcode 7 环境中将资产添加到资产目录中,但最终什么也没做。
我们公司需要使用 jpg 文件而不是 PNG 文件,以避免超过 iOS 应用程序在蜂窝网络上的 100 mb 下载限制。
有没有人在任何 7.x 版本的 Xcode 中让资产目录与 JPEGS 一起使用?
ios - Xcode 在多个目标中使用图像集
我有一个相当简单的问题,但我不知道如何解决它。
我有 2 个目标 - A、B。每个目标都有自己的资产目录,并且我有一些每个目标独有的图像(应用程序图标、启动屏幕和其他一些)。
我还有一些图像(我们称它们为“i1”),我想将它们添加到每个目标的资产目录中。
有谁知道我如何在不复制 i1 的情况下实现这一目标?为每个目标复制它并不是很困难,但是任何时候我想对 i1 进行更改,我都必须进行两次。另外,根据我的经验,很容易忘记这种事情。这就是为什么我希望只拥有一份 i1 的副本。
ios - 没有@3x 图像并且某些图像是 JPG 时的应用程序细化
对于我的一个应用程序的即将更新,我已将所有图像资源打包到资产目录中。
但是,目前我的大多数图像都没有@3x 版本。我已经检查了模拟器并在 iPhone 6 Plus 上使用了@2x 版本。
我不介意这种行为有两个原因:
- 结果对于我正在使用的图像来说已经足够好了
- 我的用户中只有 50% 使用 iOS 9。如果我添加 @3x 图像,我的应用程序的大小对于旧操作系统上的用户来说会飙升
尽管图像在 iPhone 6 plus 的模拟器中正确加载,但我有点担心归档应用程序时会发生什么。特别是,我担心使用 App Thinning iPhone 6 Plus 用户会得到一个没有任何图像的应用程序 :)
所以,我有两个问题:
- 如果我不提供@3x 图像,我的更新在 App Store 上发布后,@2x 会加载到 iPhone 6 plus 上吗?
- 我是否仍会从 App Thinning 中受益,因为使用 @2x 和 @3x 显示器的用户不会下载 @1x 图像(反之亦然)?或者在这种情况下,App Thinning 会不起作用,用户将获得相同的资产,而不管他们的设备屏幕如何?
这些都是微不足道的问题,但我无法在网上找到任何信息,说明当您不遵循 Apple 的指导方针,不在资产目录中提供 @3x 图像但您的应用程序仍可用于 iPhone 6 + 时会发生什么。此外,我的一些图像是 JPG 格式,这增加了额外的不确定性,因为它不是 iPhone 的理想格式。
提前感谢您的任何帮助!
ios - Xcode:根据预处理器标志从资产目录中排除构建中的图像
我有两个应用程序几乎共享所有内容,除了一个根据“构建设置”选项卡上配置的预处理器宏显示广告。
现在,按照同样的规则,我需要从资产目录中排除图像,这样带有广告的应用程序就不会包含它不应该包含的东西,但我不知道该怎么做。有什么指导方针吗?
谢谢
ios - 从 XCAsset 目录中获取数据
我知道要从资产目录中获取图像,我可以使用 UIImage(named: "fileName") 来做到这一点。
但是,如果我从 XCAsset 目录中获取 DATA 怎么办?我想不通。
我试过了,
但它是零。我不知道如何从 XCAssets 目录中获取数据。如果有人可以帮助我(谷歌搜索没有帮助),请告诉我,我将非常感激!
更新:
为什么我要尝试从资产目录中获取数据?我将动画 gif 拖到资产目录中。资产目录将其解释为 DATA。这就是我试图从资产目录中获取数据的原因。
更新:这是我的 Assets.xcassets 文件夹的屏幕截图。
ios - xcode 7 中没有 Retina 4 选项,那么如何在资产中设置全屏图像以使其在 4s/5s 和 iPhone 6 中正确显示?
在 xcode 7 中,这些不是视网膜 4 选项,据此,苹果故意将其删除。我确实编辑了 Contents.json 以将其取回,但效果不一样!我记得在 XCode6/pre-iOS9 iPhone 6 将使用视网膜 4 图片,所以我只需要为 iPhone 4/4s 设置一张全屏 2x 图片,为 iPhone 5/5s 和 6 设置一张全屏 Retina 4。
我认为在 iPhone 6 上使用 Retina4 真的很有意义,而 2x 则不然!因为 1334/750 约为 1.778,接近 1136/640 = 1.775 而 960/640 = 1.5。我的 640*1136 图片在 iPhone 6 上可以正常显示,而 640*960 图片失真。
但是使用 Xcode 7,即使我恢复了视网膜 4 选项,iPhone 6 仍然使用 2x (640*960) 图片而不是视网膜 4 图片(iPhone 5/5s 确实使用视网膜 4 并且现在可以正常显示)。我试图将设备类型从 iPhone 更改为 Universal,同样。
所以我的问题是如果苹果故意删除了retina4,那么我如何在xasset 中设置全屏图像以使其适用于iPhone 4/5/6?我只谈论全屏图像。我理解使用 2x 的非全屏图像是有意义的。
顺便说一句,我不是在谈论 AppIcon 和 LaunchImage(视网膜 4 仍然存在并且可以工作)。我也不想编写额外的代码来使其工作(实际上这是我目前所做的,例如iPhone 6 上的 Fullscreen images with Asset Catalogs)。那么我是否有可能只是设置资产使其工作?