我有 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 !!!
这是怎么回事?
谢谢!
我有 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
方法)没有使用特殊的后缀。如果您需要 4" 屏幕上的特殊图像,您需要添加代码以自己获取所需的图像。
以下适用于 iPhone。对于 iPad,您需要额外的图像。
对于背景图像的三个版本,请使用以下名称:
(您不需要“-568h.png”图像,因为没有 320x568 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+ 的新屏幕尺寸时遇到了问题。
我所做的是对不同的图像文件使用这个命名约定:
然后只需在项目中包含此 Gist 中的代码即可自动生成(全尺寸)图像: https ://gist.github.com/kevindelord/fe2e691d06ab745fbb00
你没有别的事可做。当您在代码中实例化图像时:
[UIImage imageNamed:@"background.png”];
Gist 中的分类类将automatically
创建与当前设备对应的图像。
在 CocoaDocs上记录了一个用于UIImage+Autoresize的Pod 。