【问题标题】:Understanding iPhone 5/6 resolution on image.xcassets了解 image.xcassets 上的 iPhone 5/6 分辨率
【发布时间】:2015-07-23 03:42:58
【问题描述】:

正如标题所说,我仍然对理解 image.xcassets 如何处理 iPhone 5/6 图像感到困惑。让我解释得更好:

这是我在 image.xcassets 中的MENU_EMPTY_LIST 文件。我一直在 stackoverflow 中寻找答案,我发现了这个:

  • 1x 图像适用于原始 iPhone 通过 3GS -“标准”分辨率设备(3.5 英寸屏幕)

  • 2x 图像适用于 iPhone 4、4S(3.5 英寸 Retina 屏幕)以及 iPhone 6。

  • Retina 4 2x 适用于 iPhone 5 和 5s(4" Retina 屏幕)

  • 3x 图片适用于新款 iPhone 6+(5.5 英寸超视网膜 [3x] 屏幕)

这对我帮助很大,但我的问题是:如果图像集是背景(简而言之,图像覆盖整个屏幕)怎么办?如何处理不同的屏幕尺寸?我必须在“2x”方块中放入什么? iPhone 4/4S 图片还是 iPhone 6?

【问题讨论】:

    标签: ios objective-c iphone xcode xcasset


    【解决方案1】:

    只有一个问题是 iPhone 4 和 iPhone 6 拍摄相同的 @2x 图像。

    所以,如果你想为所有设备设置完美的图像,那么你必须尝试以下代码:

    if([[UIScreen mainScreen]bounds].size.height==480)
    {
        login_bg.image=[UIImage imageNamed:@"i4_login.png"];
    }
    else if ([[UIScreen mainScreen]bounds].size.height==568)
    {
        login_bg.image=[UIImage imageNamed:@"i5_login.png"];
    }
    else if ([[UIScreen mainScreen]bounds].size.height==667)
    {
        login_bg.image=[UIImage imageNamed:@"i6_login.png"];
    }
    else if ([[UIScreen mainScreen]bounds].size.height==736)
    {
        login_bg.image=[UIImage imageNamed:@"i6+_login.png"];
    }
    else if ([[UIScreen mainScreen]bounds].size.height==1024)
    {
        login_bg.image=[UIImage imageNamed:@"ipad_login.png"];
    }
    

    【讨论】:

    • 那么在这种情况下我不必使用 image.xcassets 吗?
    • 是的!谢谢,我忘了回答 :) 我只是在寻找一种用这种新方法组织文件夹和文件的方法 :)
    • 如果它是 switch((NSInteger)[[UIScreen mainScreen]bounds].size.height) ...long if/else/else 链是丑陋的,这会更好读
    • 它适合你吗?请接受我的回答@user3582537
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2013-01-22
    相关资源
    最近更新 更多