我正在开发一个壁纸应用程序,专为视网膜显示屏 iPhone 制作。我有一个 640 x 960 像素大小的图像,legends.jpg
我想在视图中显示它作为预览。这是我的代码loadView
:
- (void)loadView
{
// Init the main view first.
UIView *wallpaperContainerView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UIImage *wallpaper = [UIImage imageNamed:@"legends.jpg"];
UIImageView *wallpaperView = [[UIImageView alloc] initWithImage:wallpaper];
[wallpaperContainerView addSubview:wallpaperView];
[self setView:wallpaperContainerView];
}
我的问题是:
- 当我在模拟器(iPhone Retina 3.5 英寸)上运行它时,图像看起来比整个屏幕都大,只显示了它的左上角部分。为什么会出现这种情况,当 3.5 英寸 iPhone 的分辨率为 640x960 时,与我的图像尺寸相似?我应该在代码中添加什么以使图像适合屏幕?
- 如果我只针对视网膜显示 iPhone,我是否应该在所有图像文件名后附加“@2x”并省略非“@2x”文件?
更新
感谢以下建议,我创建了 legends.png(用于非视网膜)和 legends@2x.png 文件。然后,我将*wallpaper
初始化修改为:
UIImage *wallpaper = [UIImage imageNamed:@"legends"];
这完全解决了我的#1 问题。所以显然使用 JPG 会导致这种缩放混乱,而使用 PNG 一切正常。