【问题标题】:What to name images for iPhone 5 screen size?为 iPhone 5 屏幕尺寸命名的图像是什么?
【发布时间】:2012-09-13 04:51:09
【问题描述】:

4 英寸视网膜显示屏图像的新命名约定是什么?

对于名为 background.png 的图像,您将 @2x 添加到名称 (background@2x.png) 以告诉 iOS 将该图像用于具有视网膜显示屏的设备。

iPhone 5 屏幕尺寸的后缀是什么?

【问题讨论】:

标签: ios iphone cocoa-touch ios6 ios7


【解决方案1】:

您可以使用我的#defines 来帮助您处理这些图片:

#define isPhone568 ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && [UIScreen mainScreen].bounds.size.height == 568)
#define iPhone568ImageNamed(image) (isPhone568 ? [NSString stringWithFormat:@"%@-568h.%@", [image stringByDeletingPathExtension], [image pathExtension]] : image)
#define iPhone568Image(image) ([UIImage imageNamed:iPhone568ImageNamed(image)])

只需为您的图像添加 -568h@2x.png 符号,然后使用 iPhone568ImageNamed 获取标准名称或 iPhone 5/新 iPod 的名称。

来自 cmets 的使用示例:

self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:iPhone568ImageNamed(@"mainscreen.png")]];

【讨论】:

  • 问:如果名称作为“foo.png”传入,它最终不会转换为“foo.png-568h”吗?
  • 啊,这个呢? #define iPhone568ImageNamed(image) (isPhone568 ? [NSString stringWithFormat:@"%@-568h.%@", [image stringByDeletingPathExtension], [image pathExtension]] : image)
  • 带有背景图案的示例:self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:iPhone568ImageNamed(@"mainscreen.png")]];
  • 你的意思是当设备旋转时?如果是这样,在 veiwDidLayoutSubviews 中。否则,viewDidLoad 是一个不错的选择。
  • @LudovicLandry 如果您想在图像和屏幕之间进行精确的 1:1 像素映射,这是不可避免的。您的建议可以并且将会创造出高档的人工制品(例如模糊)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 2012-11-28
  • 2013-09-02
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
  • 2015-07-18
相关资源
最近更新 更多