【问题标题】:iPhone 5 retina display 2x imageiPhone 5 视网膜显示 2x 图像
【发布时间】:2015-03-31 18:27:24
【问题描述】:

为了将 iPhone 迁移到 Retina 设备,我们必须准备具有双倍尺寸分辨率的图像并将其命名为“@2x”,以便 IOS 将自动在 Retina 设备中使用 2x 图像。

我的问题是,如果我违反规则并将图像创建为三倍尺寸(或大于两倍尺寸)但将其命名为“@2x”作为 Apple 法规状态,该怎么办。 Apple 会拒绝我的应用程序上传到 AppStore 吗?

我这样做的原因是我在设置背景图像时,我做了如下:

self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed: @"background.png"]];

在 iPhone 5 的视网膜显示屏中,双倍尺寸的图像无法正确融入背景,因为 iPhone 5 的高度不仅仅是双倍尺寸,它就像双倍尺寸加上额外的像素。这就是为什么我想将背景图片自定义为大于两倍大小的原因。

我真的不想在我的应用程序中添加额外的代码来手动检查设备类型并加载相应的图像,因为 IOS 有更好和方便的方法。

我担心在这种情况下 Apple 会拒绝我的应用吗?

【问题讨论】:

    标签: iphone ios objective-c


    【解决方案1】:

    如果您创建的图片尺寸/分辨率“错误”,Apple 不会拒绝您的应用。但是,这样做通常没有意义。

    @2x 表示分辨率,iPhone 4/4S 和 iPhone 5 的分辨率相同。唯一的区别在于屏幕的高度。

    此外,您应该使用UIImageView 来处理大型背景图片(更好的内存管理和性能)。

    将此添加到您的类文件或项目的前缀文件中:

    #define deviceIsIPhone5 ([UIScreen mainScreen].applicationFrame.size.height == 568 ? YES : NO)
    

    在你的viewDidLoad(或类似的地方):

    if (deviceIsIPhone5) 
    {
        self.backgroundImage.image = [UIImage imageNamed:@"background-568h@2x.png"];
    } 
    else
    {
        self.backgroundImage.image = [UIImage imageNamed:@"background@2x.png"];
    }
    

    【讨论】:

      【解决方案2】:

      不,应用不会被拒绝。

      这不是像你所做的那样的好方法。当您的应用在非视网膜硬件上运行时,将使用普通图像,而每当您使用视网膜硬件时,将自动使用@2x 图像。

      给两张图都闲着。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多