【问题标题】:Getting launch image from xcassets file has wrong size [duplicate]从 xcassets 文件获取启动图像的大小错误 [重复]
【发布时间】:2013-12-26 22:58:39
【问题描述】:

Xcode 的默认 Images.xcassets 文件有一个用于LaunchImage 的槽,其中对于纵向 iPhone 应用程序有 5 个可能的槽。

根据documentation,要从xcassets 文件中获取适当大小的图像,只需使用[UIImage imageNamed:]

但是,在 iPhone Retine(4 英寸)模拟器上运行以下代码:

UIImage *splashImage = [UIImage imageNamed:@"LaunchImage"];
NSLog(@"%@", NSStringFromCGSize(splashImage.size));

产生以下输出:

{320, 480}

这显然是错误的尺寸。

我已确保 xcassets 文件中的映射正确,并已确认所有尺寸。似乎我无法从 xcassets 文件中的给定集合中请求特定图像,这意味着我不能这样做:[UIImage imageNamed:@"LaunchImageR4"]

而且由于文件被添加到 xcassets 文件中,我也无法访问原始图像文件,因此自定义解决方案似乎是不可能的。

有人知道我将如何解决这个问题吗?

【问题讨论】:

    标签: ios xcode xcasset


    【解决方案1】:

    我相信正确的启动图像会在启动时自动加载。它并不意味着在运行时从xcassets 中提取。由于它是在运行时,您必须自己检查正在使用哪个设备,因为图像目录仅设置为使用 @2x 后缀(而不是设备的大小)拉视网膜与非视网膜。

    您可以使用this post 来确定正在使用的设备并按名称加载正确的图像。

    【讨论】:

    • 是的,但我无权访问原始启动图像文件。我的启动图像文件名为AppSplash.png,但如果我要使用 UIImage 访问它,它就会变成空的。因此,您的解决方案将不起作用。
    【解决方案2】:

    启动图像是一种特殊的图像集。您无法使用[UIImage imageNamed:@"LaunchImage"] 获取适合您设备(即 iPhone 3"、4" 或 iPad + Retina)的正确启动图像。

    【讨论】:

    • 我不明白你的回答在说什么。你只是告诉我我不能?
    • 不使用 imageNamed: 如果你想知道你是否在 4" 显示器上,那么只需检查 [UIScreen mainScreen].bounds.size.height == 568.0f 然后你必须手动选择正确的图像。
    • 这不是答案,也没有用处。这没有提供解决方案,也没有引用,也没有解释。
    • 我知道这可能对你没有用@BenLeggiero,但请注意你在这里使用的语气。我建议阅读 StackOverflow 行为准则:stackoverflow.com/conduct
    • @BenLeggiero 您的原始评论有点激进。如果您查看我发布的 CoC 链接,它将向您展示哪些消息被视为“不友好”与“友好”的示例。您的答案将属于“不友好”类别,而“友好”的回应则更像是,“我相信,如果您提供实际的解决方案或更深入的解释,这个答案会更清晰,更有益。”希望有帮助:)
    猜你喜欢
    • 2015-05-11
    • 1970-01-01
    • 2014-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 2017-06-03
    • 1970-01-01
    相关资源
    最近更新 更多