gpt4 book ai didi

iphone - 为什么我的视网膜显示器特定图像显示得比屏幕大?

转载 作者:行者123 更新时间:2023-11-28 20:14:12 25 4
gpt4 key购买 nike

我正在开发一款专为视网膜显示屏 iPhone 设计的壁纸应用。我有一个 640 x 960 像素大小的图像 legends.jpg,我想在 View 中显示它作为预览。这是我在 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];
}

我的问题是:

  1. 当我在模拟器(iPhone Retina 3.5 英寸)上运行它时,图像看起来比整个屏幕都大,只显示了它的左上部分。当 3.5 英寸 iPhone 的分辨率为 640x960,与我的图像尺寸相似时,为什么会这样?我应该在我的代码中添加什么以使图像适合屏幕?
  2. 如果我针对视网膜显示屏 iPhone,我是否应该在所有图像文件名后附加“@2x”并忽略非“@2x”文件?

更新

感谢下面的建议,我创建了 legends.png(非视网膜)和 legends@2x.png 文件。然后,我将 *wallpaper 初始化修改为:

UIImage *wallpaper = [UIImage imageNamed:@"legends"];

完全解决了我的#1 问题。所以显然使用 JPG 会导致这种缩放困惑,而使用 PNG 一切正常。

最佳答案

iPhone Retina 屏幕为 3.5 英寸,但其分辨率是非 Retina 屏幕的两倍。因此,您必须包含支持视网膜和非视网膜显示器的图像资源。 Retina 资源图像名称应具有后缀 @2x。因此,包括分辨率为 320x480(非视网膜)和 640x960(视网膜)的图像,您的问题就会迎刃而解。

关于iphone - 为什么我的视网膜显示器特定图像显示得比屏幕大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18759378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com