【问题标题】:image sizes for different iOS devices不同 iOS 设备的图像大小
【发布时间】:2015-11-03 18:24:30
【问题描述】:

我是 iOS 编程新手。我想问这些关于不同屏幕尺寸的图像尺寸的问题

  1. x、2x 和 3x 图像大小是否足以满足所有 iOS 设备?我的意思是,如果我有一个名为“background.png”的图像,那么 background.png、background2x.png 和 background3x.png 是否足以满足所有 iOS 设备/屏幕尺寸?
  2. 如果不是,不同的 iPad 型号是否需要其他一些图像尺寸(x、2x 和 3x 除外)? .......一个用于解释不同屏幕尺寸/设备的图像尺寸的链接将不胜感激。谢谢

【问题讨论】:

    标签: ios


    【解决方案1】:

    是的,x、2x 和 3x 图像尺寸是为所有 iOS 设备开发应用程序所必需的,但 iPad 和 iPhone 设备的图像尺寸可能不同,具体取决于 iPad 和 iPhone 的应用程序 UI。

    为了更好地理解背景图片,请查看Adaptivity and Layout

    与您的查询相关的最佳文章之一 - Adaptive Layout Tutorial in iOS 9: Getting Started

    【讨论】:

      【解决方案2】:

      如果您为@1x、@2x 和@3x 制作了图像,请将它们命名为:

      • iPhone 3:myImage.png
      • iPhone 4、4S:myImage@2x.png
      • iPhone 5、5S:myImage-568h@2x.png
      • iPhone 6、6S:myImage-667h@2x.png
      • iPhone 6P, 6PS : myImage-736h@3x.png

      然后你可以像这样调用blow方法:

      UIImage *myImage = [self deviceSizedImageWithName:@"myImage.png"];

      #define kScreenHeight [UIScreen mainScreen].bounds.size.height
      #define kScreenWidth [UIScreen mainScreen].bounds.size.width
      #define kScreenSize [UIScreen mainScreen].bounds.size
      #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
      #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
      #define IS_IPHONE_4 (IS_IPHONE && kScreenHeight == 480.0f)
      #define IS_IPHONE_5 (IS_IPHONE && kScreenHeight == 568.0f)
      #define IS_IPHONE_6 (IS_IPHONE && kScreenHeight == 667.0f)
      #define IS_IPHONE_6P (IS_IPHONE && kScreenHeight == 736.0f)
      
      - (UIImage *)deviceSizedImageWithName:(NSString *)imageNamed
      {
          NSString *imgExtension = [imageNamed pathExtension];
          NSString *imgName = [imageNamed stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@".%@", imgExtension] withString:@""];
      
          BOOL removedExt = [imgExtension length];
      
          UIImage *image = [UIImage imageNamed:imageNamed];
          if (IS_IPHONE_5) {
              if (removedExt) image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-568h.%@", imgName, imgExtension]];
              else image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-568h", imageNamed]];
      
              if (!image) return [UIImage imageNamed:imageNamed];
      
          } else if (IS_IPHONE_6) {
              if (removedExt) image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-667h.%@", imgName, imgExtension]];
              else image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-667h", imageNamed]];
      
              if (!image) return [UIImage imageNamed:imageNamed];
      
          } else if (IS_IPHONE_6P) {
              if (removedExt) image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-736.%@", imgName, imgExtension]];
              else image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-736", imageNamed]];
      
              if (!image) return [UIImage imageNamed:imageNamed];
      
          }
          return image;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-23
        • 2014-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多