【问题标题】:Getting launch image from XCAssets using imageWithContentsOfFile:使用 imageWithContentsOfFile 从 XCAssets 获取启动图像:
【发布时间】:2015-05-11 04:13:13
【问题描述】:

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

我已经尝试了多种方法,但到目前为止我只能使用imageNamed: 加载它们。

这行得通:

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

这不起作用(返回null):

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

有什么方法可以在不将资源显式添加到目标(资产文件除外)的情况下做到这一点?谢谢!

【问题讨论】:

    标签: ios objective-c xcode uiimage imagenamed


    【解决方案1】:

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

    根据 XCAssets documentation

    资产目录中的每个集合都有一个名称。您可以使用该名称以编程方式加载集合中包含的任何单个图像。要加载图像,请调用特定于平台的类方法,传入包含图像的集合的名称。操作系统将从最适合当前比例因子的集合中加载图像。 iOS 的平台方法是 imageNamed:。对于 OS X,平台方法是 imageNamed:

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

    查看类似的问题和答案here

    【讨论】:

    • 感谢您的回复。有什么方法可以做到这一点,而不必将文件添加为 Xcode 资产文件之外的资源?如果可能的话,我想减小应用程序的文件大小,这会为不同的屏幕添加不同的启动文件。
    • 太糟糕了,他们没有更好的方法来做到这一点......感谢您的回答。
    猜你喜欢
    • 2014-04-16
    • 2013-12-26
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多