使用 imageWithContentsOfFile 从 XCAssets 获取启动图像:

Getting launch image from XCAssets using imageWithContentsOfFile:

我正在尝试从 .xcassets 文件中的 LaunchImage 图像集加载图像,但我 不想 使用 imageNamed:,因为它会浪费内存,并且图像只需要在初始启动时显示几秒钟。

我尝试了多种方法,但到目前为止我只能使用 imageNamed:.

加载它们

这个有效:

[UIImage imageNamed:@"LaunchImage-700-568h.png"]

这行不通 (returns null):

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"LaunchImage-700-568h" ofType:@"png"]]

有没有办法在不将资源显式添加到目标(资产文件除外)的情况下执行此操作?谢谢!

看来您的问题的答案是否定的。

根据 XCAssets documentation

Each set in an asset catalog has a name. You can use that name to programmatically load any individual image contained in the set. To load an image, call the platform specific class method, passing in the name of the set that contains the image. The OS will load the image from the set that is most appropriate for the current scale factor. The platform method for iOS is imageNamed:. For OS X the platform method is imageNamed:

所以我们必须使用 [UIImage imageNamed:] 方法从 iOS 上的 XCAssets 目录加载图像。

查看类似的问题和答案here