如何使用Swift从资产加载特定图像

Gho*_*ost 56 size assets image ios swift

我是Swift的新手,我想从资产中加载一个特殊的图像.例如,我有:

image 1 for iphone 4s = green-square@2x.png
image 2 for iphone 5/5s = green-square-Retina@2x.png
image 3 for iphone 6s = green-square@3x.png
Run Code Online (Sandbox Code Playgroud)

我想为iphone 6加载一个特定的图像

self.GSquare = SKSpriteNode(imageNamed: "./Images.xcassets/green-square-Retina@2x.png")
Run Code Online (Sandbox Code Playgroud)

可能吗?

Aza*_*zat 99

你不应该直接加载图像@2x@3x,系统会自动选择合适的图像,你只需要指定名称,如UIImage(named: "green-square-Retina")

  • 这就是为什么我想知道是否有可能直接执行此操作,因为如果我为每个图像执行另一个图像,我的应用程序将变得更重 (2认同)

Max*_*kin 50

从swift 3.0开始,有更方便的方法:#imageLiterals 这里是文本示例.以下从动画的例子在这里:

在此输入图像描述

  • 从2019年5月开始,您必须双击Image Literal选项插入的符号。这将打开您的资产列表 (3认同)
  • 也许只有我这么认为,但使用 #imageLiteral 会使代码完全不可读 (3认同)

Roo*_*hul 5

您可以轻松地从资产中选择图像,而无需UIImage(named: "green-square-Retina").

而是直接从包中使用图像对象。
开始输入图像名称,您将从捆绑包中获得有关实际图像的建议。这是可取的做法,不易出错。

请参阅Stackoverflow 答案以供参考。