【问题标题】:Handling different iphone screen sizes/resolution for background images为背景图像处理不同的 iphone 屏幕尺寸/分辨率
【发布时间】:2013-03-17 17:41:57
【问题描述】:

我想更好地了解 iphone 分辨率等。

我有一个具有基本 buttonView 和 logoView 的应用程序。我已经输出了 logoView 的高度,它将根据屏幕尺寸自动适应高度。

对于 iphone5,我有 318 可以使用。 对于 iphone4(

我的问题是,我应该如何处理用于此视图背景的图像。我会为以下创建一个三个单独的图像吗? -iphone3 等 (230) -iphone4 视网膜(230 尺寸,@2) -iphone5视网膜(328尺寸,@2)

或者我会只创建 2x 230 的图像,当使用 iphone5 并且有更多可用空间时,我可以将图像拉伸到 318 吗?

【问题讨论】:

    标签: ios ios5 uiimage iphone-5 screen-size


    【解决方案1】:

    这一切都取决于你的形象:

    • 如果您的图像可以拉伸,UIImageView 将完成所有工作。
    • 如果你的图像只有一部分应该被拉伸,你应该使用这个:
      • imageView.image = [imageView.image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)];
    • 如果您的图片无法拉伸,您应该为手机制作不同的图片并在运行时更改它们。

    更新

    最后一点,您可以在 viewDidLoad 方法中执行类似的操作:

    BOOL isIPhone = [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone;
    BOOL isIPhone5 = isIPhone && ([[UIScreen mainScreen] bounds].size.height > 480.0);
    if (isIPhone5) {
       imageView.image = [UIImage imageNamed:@"iphone4image.png"];
    } else {
        imageView.image = [UIImage imageNamed:@"iphone5image.png"];
    }
    

    【讨论】:

    • 一个完美的答案,您能否添加有关您最后一点的其他信息以及如何完成此操作?
    • 您还可以按照stackoverflow.com/questions/9368106/…将@2x 附加到图像文件名来添加不同的图像分辨率
    • 请改一下图片名称,我想你弄错了,还有一个问题我想问一下,我们如何通过上述方式处理>iPhone6?
    【解决方案2】:

    iOS 8 对不同的屏幕有不同的尺寸等级。这里解释得很好。每个 iOS 开发者都应该通过这个link

    【讨论】:

    • 这个问题最初是在 13 年提出的。当尺寸等级可能只是被考虑时。但是感谢您将此信息添加到新来者的旧问题中;)
    • 是的,我已经看到了,但是由于 6 n 6+,这个问题的价值大大增加了
    • 这就是我在旧问题中发布此内容的原因
    • 非常重要的一点,这个答案绝对应该被赞成,所以新手会注意到它
    【解决方案3】:

    如果您想让它更简洁一点,您可以使用宏来考虑更长的屏幕尺寸。

    #define ASSET_BY_SCREEN_HEIGHT(regular, longScreen) (([[UIScreen mainScreen] bounds].size.height <= 480.0) ? regular : longScreen)
    

    示例用法:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
        self.splashScreenImageView.image = [UIImage imageNamed:ASSET_BY_SCREEN_HEIGHT(@"Default", @"Default-568h")];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多