问题标签 [xcasset]

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 回答
6477 浏览

ios - iOS 图像资产大小。3x 实际上是 1x 大小的 3 倍,是否需要 Retina 4 2x?

我试图把我的头包裹在所有的事情上,并确保我做的每件事都正确。

我一直在查看iPhone 分辨率终极指南,并希望了解 3x 和 Retina 4 2x。

对于 3 倍,显然图像被降采样。我不应该关心这个,对吧?我需要做的就是放置一个宽度和高度是 1x 图像的 3 倍的图像。当然,我的目的是缩放图像。所以它遵循从 1x 到 2x 的完全相同的步骤,因为我只是将尺寸变大。那是对的吗?

然后,我看到了我认为都使用 Retina 4 2x 的 iPhone 5 和 iPhone 5s。需要 Retina 4 2x 吗?如果没有,它只是默认为 2x,对吗?Retina 4 2x 和 2x 图像之间应该有什么区别?我将如何以不同的方式缩放宽度和高度?

0 投票
1 回答
243 浏览

ios - iOS 会屏蔽每个应用程序图标还是仅屏蔽主屏幕上的应用程序图标?

据此,Apple 关于应用程序图标的文档,“当 iOS 在设备的主屏幕上显示应用程序图标时,它会自动应用一个圆角的蒙版。确保您的图标有 90° 角,以便蒙版后看起来不错被申请;被应用。”

目前,我的应用程序图标已经有圆角。我很乐意在该透明空间中着色,使其具有 90° 角,但文档未指定 iOS 是否也在 Spotlight、设置等中应用蒙版。

我假设它将遮罩应用于 AppIcons 图像集中的每个 iOS 图标。只求确认。

0 投票
1 回答
2001 浏览

ios - Images.xcassets 违反了目标法则

好的,所以我在这个问题上咬牙切齿,我真诚地希望我犯了一个愚蠢的错误(涉及到一些深夜)。

简短的背景故事,我们正在构建一个需要品牌化的产品,因为多个客户将共享 90% 相同的 UI 和代码,并带有一些配置选项来打开/关闭事物以及不同的颜色、字体和图像等。

除 .xcassets 文件夹外,一切正常。我每个客户有 1 个,目前他们具有相同的资产名称,具有不同的图像。例如,每个 .xcassets 都有一个ic_settings,但每个的内容都不同。

我已经检查了复制包资源构建阶段,对于每个目标,实际上每个目标只有 1 个 .xcasset 文件夹。

<redacted image>

<redacted image>

当我运行该应用程序时,它会正确加载 appIcon(我必须将其重命名为 appIcon- <target>,因为 Xcode 中的下拉菜单显示了所有内容并且无法知道哪个是哪个)。它还显示正确的包名称和启动 screen.xib。

下面是图片本身。如您所见,图像完全不同:

<redacted image> <redacted image>

但是当我运行客户 1 和客户 2 时。所有图像都是客户 1 的。

我不知道这在物理上是如何实现的,请告诉我:

  1. 我没有疯
  2. 我犯了一些我看不到的简单错误
  3. 这不是 Xcode 错误,也不需要人类所见过的最复杂的工作。可能重命名所有图像以附加目标名称:-(。

笔记

我已经尝试在模拟器和真实设备上清理、构建、重置模拟器、删除派生数据等。

如果我将唯一图像添加到其中一个文件夹,我就可以使用它。直觉是 Xcode 正在合并文件夹????

解决方法

标记的答案是正确的,它是cocoapods。这是一个已知问题,目前最好的解决方法(我发现)是使用这个:https ://github.com/CocoaPods/CocoaPods/issues/1546#issuecomment-61907975

0 投票
0 回答
133 浏览

ios - 如何理解我应该使用什么 xcassets 大小?

我正在尝试快速制作一个简单的游戏。但是我不知道,我应该为我的照片制作多大的尺寸。Apple 解释了启动屏幕、图标等的大小。但是,如何处理我的背景、英雄或敌人?另外,我应该先画@3x 然后缩小它们还是怎么做?作为 spritekit 和一般编程的新手,我找不到该信息。

0 投票
5 回答
9074 浏览

ios - 检查字符串名称是否与 images.xcassets 中的资产匹配

我在谷歌上搜索到的所有东西都会找到关于 ALAsset 的答案。

我有一个 images.xcassets 文件夹和一堆资产。

我想知道那里是否存在基于字符串的资产。

例如if(images.xcassets.contains("assetName") == true)

您知道如何根据字符串检查资产是否存在吗?

0 投票
0 回答
148 浏览

ios - SKS 文件使用的 XCassets 内的文件夹

我对 iOS 应用程序开发非常陌生,目前正在研究 Sprite Kit。

将图像添加到images.xcassets. 我正在 xcassets 中创建一个文件夹,如图所示,以便更好地组织图像。

在此处输入图像描述

然后,在将 xcassets 文件夹中的这些图像添加到 sks 文件中时,我遇到了一些问题。

A)如果我从列中拖动图像,如图所示

在此处输入图像描述

当我将图像放在 sks 文件中时,我没有得到如图所示的纹理名称。

在此处输入图像描述

但是,如果图像是在未创建文件夹的情况下添加到 xcassets 中的,则会出现纹理名称。如果图像存在于 xcassets 的文件夹中,如何解决这个问题?

B) 类似的问题是,如果我将“Color Sprite”拖到 sks 文件中,并且如果我想在 xcassets 文件夹中添加图像,它不会读取它。但是可以读取直接存在于 xcassets 中的图像。如果图像存在于 xcassets 的文件夹中,如何解决这个问题?

C)下一个问题是如果我将整个项目文件夹复制到不同的位置(或者即使我关闭项目并再次打开它),然后如果我打开 sks 文件,我会遇到以下问题。

在此处输入图像描述

在 xcassets 中添加的图像直接出现,但在 xcassets 文件夹中添加的图像无法出现在 sks 文件中,即使我运行代码也是如此。但是,如果我签入 images.xcassets 文件夹,则该图像存在于其中。

如果我使用 XIB,则不会发生上述问题。

我已经阅读了精灵套件中的地图集,但我不想使用它,因为我的图像在整个执行过程中保持不变。

0 投票
0 回答
335 浏览

ios - Xcode 资产目录编译大小

我注意到编译的 xcasset 有奇怪的行为。看起来 .car 文件中的图像比默认图像大。这是我用于测试的图像目录https://www.dropbox.com/s/h544p42qfwjwm4y/Images.xcassets.zip?dl=0

这在某种程度上与 actool 内部结构有关。我试图手动编译它:/Applications/Xcode.app/Contents/Developer/usr/bin/actool Images.xcassets --platform iphoneos --minimum-deployment-target 8.2 --print-contents --compile folder而且汽车尺寸比 xcassets 大。此外,我用Crunch解压缩了汽车文件,图像大约大 3 倍。

这可能是什么原因?

0 投票
1 回答
211 浏览

ios - Xcode 6 - 通用图像支持

我想知道新的 XCode 6 和 iPhone 6 以及 iPhone 6 plus 支持需要哪些图像尺寸。

所以如果我现在有一个全角图像,那就是

适用于 iphone 4s/5 系列。所以用“@2x”。对于 iPhone 6 plus,我也需要“@3x”。所以那将是

?

更新:

我的目标是拥有一个在每部 iPhone 或 iPad 上看起来都不错的全角图像(任何尺寸等级)。

0 投票
2 回答
1490 浏览

watchkit - 手表套件使用哪种分辨率的图像?

watchkit 中的 Images.xcassets 有 1x、2x 和 3x 选项。

但是我们怎么知道使用哪一个呢?两者都是视网膜,但屏幕尺寸不同。我们必须提供所有三个吗?如果你不这样做会发生什么?

编辑:我尝试将图像放在 1x 和 2x 中,到目前为止还没有注意到任何差异,但这可能只是我没有进行测试。没有其他的。

0 投票
3 回答
17710 浏览

xcode - UIImage 使用 contentOfFile

我在用

self.imageView.image = UIImage(named: "foo.png")

UIIMageView. 我的应用程序中的图像位于images.xcassets. 问题在于,这个特定init的缓存图像以按照Apple 官方文档重用:

如果您有一个只显示一次的图像文件并希望确保它不会被添加到系统的缓存中,您应该使用imageWithContentsOfFile:创建您的图像。这将使您的一次性图像远离系统图像缓存,从而潜在地改善您的应用程序的内存使用特性。

我的视图允许在选择图像之前循环浏览图像,因此当我循环浏览时内存占用量会继续增加,即使我从该视图返回时也不会下降。

所以我尝试使用UIIMage(contentsOfFile: "path to the file")不缓存图像的。在这里,我无法以编程方式获取存储在images.xcassets下的图像的路径。

我试过使用:

NSBundle.mainBundle().resourcePath

NSBundle.mainBundle().pathForResource("foo", ofType: "png")

没有运气。对于第一个,我得到了 resourcePath,但是通过终端访问它时,我看不到它下面的任何图像资产,而第二个我nil在使用它时得到了。有没有简单的方法来做到这一点?

还查看了几个 SO 问题(例如thisthisthis),但没有运气。我是否必须将图像放在其他地方才能使用pathForResource()?解决这个问题的正确方法是什么?

很难想象以前没有人遇到过这种情况:)!