IOS/Xcode:将图像拖放到 Images.xcassets 而不先添加是否安全?

IOS/Xcode: Safe to drag and drop images to Images.xcassets without adding first?

一般在Xcode中添加一个文件,我先把它移动到项目目录下,然后点击文件添加,将其引入到项目中。我首先将它移动到项目目录的原因是为了避免意外移动或删除可能在下载、桌面或其他地方的文件。

然而,对于 images.xcassets 中的图像集,Xcode 似乎让您只需将文件拖到占位符位置,它就会自动导入图像。我不知道它真正存储图像的位置,也不知道它是否将它存储在安全的地方。我还注意到一些奇怪的事情,比如如果您右键单击并在 finder 中打开,它会拍摄一张 25x25 的图像并创建一个 26x26 的图像,或者创建一个 50x50 到 51x51 图像的副本。这些出现在名为 blank.imageset 的文件夹中,其中空白是图像集的名称。不知道为什么会这样。

我认为可能因此跳过将文件移动到项目目录并添加它的步骤。但是,我想知道跳过这些步骤是否有任何缺点。

希望对幕后发生的事情有任何启发,以及从任何随机位置拖放是否安全。

提前感谢您的任何建议。

我通常只是将文件拖放到 Xcode 中的 .xcassets 文件中的占位符中。如您所述,它会自动复制,因此无需在此之前将图像添加到项目中。

虽然没有经历过任何调整大小,可能是您选择了不正确的图像尺寸?

拖放图片是安全的。自从该功能出现在 XCode 上以来,我一直在这样做,并且没有遇到任何问题。我只是确保当我以这种方式添加图像时,我看到我的 git 存储库的下一次提交包括添加的这些图像。

为此:

It has taken an image that was 25x25 and created one that is 26x26 or created a copy of an image that was 50x50 to 51x51.

我认为问题通常出在图像尺寸上,其中 25x25 和 50x50 的图像实际上是 25.6x25.5 和 50.5x50.5,它们在取景器中显示为正确尺寸,但是如果您打开它在 Sketch 或 Photoshop 中,您可能会看到真实尺寸。

当您将此类图像放入 Xcode 时,它会显示四舍五入的尺寸。

作为经验法则,我尝试通过确保@1x 图像资产是整数,@2x 和@3x 图像是精确的倍数来获得没有此类问题的设计资产。很难相信我有多少次收到不是精确倍数的图像,这些图像仍然可以很好地呈现,但有时由于不匹配而在高分辨率屏幕上看起来很模糊。 (这在 4S 和 iPhone 5 天期间很明显)。

既然没有必要为@1x 设计,因为所有设备都是视网膜(除非你支持旧版本的iOS),即使在@2x 设计资产时也会出现问题。如果@2x 图像为 53x53,则 @3x 图像的尺寸将为 79.5x79.5。

因此,如果设计师以@2x 进行设计,很容易忘记@3x 图像现在的尺寸可能不是整数。

此类资产会导致您认为它是一维的问题,而 XCode 显示偏离 1 像素维度。

关于blank.imageset

These appear in a folder called blank.imageset where blank is the name of the imageset. No idea why it does this.

图像集名称和实际图像名称可以不同,在代码中使用图像集时,您实际上使用的是图像集名称,而不是单个图像名称。

您可以将图像设为 lion.png, animal@2x.png, cat@3x.png 并将其放入图像资产文件夹,它会创建一个 blank.imageset。再次点击 blank.imageset,您可以将其重命名为 cat.imageset。您可以在代码中将此图片用作 .....imageNamed: "cats"......