2

我为 iPad 3 开发应用程序 - 带有 Retina 显示屏。我根据规范计算出该图像应为 1536 x 2008 以填充(带有状态栏)整个屏幕。我将图像大小调整为这样的尺寸,并以编程方式加载它并将其设置为在 UIImageView 上显示(从情节提要加载)。更重要的是,为了获得最佳性能,我将 UIImageView 模式设置为 Center(以避免缩放)。当我运行应用程序时,我只看到图像的中心 - 好像我的图像是屏幕的 4 倍 - 这是不正确的。

她是我的 viewWillAppear 方法代码

UIImage *image = [UIImage imageWithContentsOfFile: self.pageData.pageFilename];

NSLog(@"Image size: %f %f", [image size].width, [image size].height);

NSLog(@"Image view size: %f %f", self.imageView.frame.size.width, self.imageView.frame.size.height);

[ self.imageView setImage: image];

我得到输出:

Image size: 1536.000000 1990.000000
Image view size: 768.000000 1004.000000

如何纠正这个?我的图像是 JPG,您可以看到大小和 72 DPI - 但我确信 DPI 无关紧要

4

1 回答 1

5

您正在混淆像素和点。

在 iOS 中,尺寸以点为单位,而不是以像素为单位。如果设备使用视网膜显示,则 1 点 = 2 像素。使用旧显示器,您有 1 点 = 1 像素。


正常显示
1 点 = 1 像素
1024 * 768 点
1024 * 768 像素

Retina 显示屏
1 点 = 2 像素
1024 * 768 点
2048 * 1536 像素


所以在这两种情况下,显示器的大小都相同:
1024 * 768 点

于 2012-08-30T14:32:47.357 回答