iOS不使用-568h@2x.png
我有3个图像:
test.png test@2x.png test-568@2x.png
在IBOutlet中,UIImageView设置为显示test.png。
在iPhone 3.5in没有视网膜,它显示test.png
在iPhone 3.5in与视网膜,它显示test@2x.png
但在iPhone 4in与视网膜,它显示test@2x.png !!!
这是怎么回事?
谢谢!
-568@2x
后缀仅适用于Default.png启动图像。 UIImage imageNamed:
没有使用特殊的后缀UIImage imageNamed:
或其他UIImage
方法)。 如果您需要4“屏幕上的特殊图像,您需要添加代码来自己获取所需的图像。
以下为iPhone的作品。 对于iPad,您需要额外的图像。
对于三个版本的背景图像,请使用以下名称:
- background-480h.png(320×480)
- background-480h@2x.png(640×960)
- background-568h@2x.png(640×1136)
(你不需要“-568h.png”图片,因为没有320×568的iPhone屏幕。)
设置背景图像时,只需将屏幕高度附加到图像名称即可:
NSString* imageName = [NSString stringWithFormat: @"background-%ih", (int)[[UIScreen mainScreen] bounds].size.height]; [view setBackgroundColor: [UIColor colorWithPatternImage: [UIImage imageNamed: imageName]]];
如果适用,iOS自动添加“@ 2x”。
你可以在图像名称的高度之后省略“h”,但是我认为很好的模拟默认图像的iOS惯例。
我知道这是一个古老的线程,但我对iPhone 6/6 +的新屏幕尺寸有麻烦。
我所做的是对不同的图像文件使用这个命名约定:
- 如果@ 1x小旧手机没有
- @ 2x for iPhone 4
- -568h @ 2x for iPhone 5
- -667h @ 2x for iPhone 6
- @ iPhone 3 Plus for iPhone 6 Plus
然后自动生成(全尺寸)图像,只需在项目中包含此Gist的代码: https : //gist.github.com/kevindelord/fe2e691d06ab745fbb00
你没有别的事情要做 当你在你的代码中实例化一个图像时:
[UIImage imageNamed:@"background.png”];
Gist中的分类类将automatically
创build与当前设备对应的图像。
在CocoaDocs上有一个UIImage + Autoresize的Pod。