我在我的viewController.m中编写了后台代码:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"image.png"]];
我有不同图片的正确名称:
image.png for non-retina display (320x480)
image@2x.png for retina display (640x960)
image-568h@2x.png for iPhone 5 (640x1136)
但当我在模拟器中运行它时,它不会在iPhone 5屏幕上获取图像-568h@2x.png,它只会在4s屏幕上获取2x的图像,并将其缩放以适合屏幕...我不知道是否有任何编码来使用图像-568h@2x的iPhone 5屏幕?
即时通信使用Xcode4.5
发布于 2012-10-25 14:21:12
iPhone 5是视网膜,就像iPhone 4和4S一样,@2x-image将自动用于所有这些设备。这只是iPhone 5的启动镜像"-568h@2x“。你需要写一些代码来使用不同的镜像,如下所示:
NSString *filename = @"image.png";
CGRect screenRect = [[UIScreen mainScreen] bounds];
if (screenRect.size.height == 568.0f)
filename = [filename stringByReplacingOccurrencesOfString:@".png" withString:@"-568h.png"];
imageView.image = [UIImage imageNamed:filename];
发布于 2012-10-25 14:13:02
如果您正在尝试使用[UIImage imageNamed:@"image.png"]
,并且希望从iPhone 5的捆绑包中自动选择image-568h@2x.png
,那么它将无法工作。自动拾取仅适用于iPhone 4和4S。
在iPhone 5中,只有名为Default-568h@2x.png
的默认图像会被自动拾取。
对于普通图像,如果您有单独的iPhone 5图像,请尝试使用以下代码
CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
// code for 4-inch screen
} else {
// code for 3.5-inch screen
}
发布于 2012-10-25 14:12:01
我认为,假设您可以将-568h@2x
技巧应用于所有图像文件是不正确的。我认为它只适用于Default-568h@2x.png
。这是iOS在应用程序启动时在4英寸显示设备上查找的文件,以及在SDK中启用4英寸显示支持的“标志”。例如,一旦包含此特定文件,您的表视图将充满整个屏幕。
我没有读到任何东西建议您可以简单地提供任何带有-568h@2x
文件名组件的图像,并让它自动使用。你必须根据屏幕的大小自己来做,例如[UIScreen mainScreen].bounds.size.height
。
https://stackoverflow.com/questions/13070369
复制相似问题