【问题标题】:Unable to properly load iPhone 4" image无法正确加载 iPhone 4" 图像
【发布时间】:2023-03-15 06:24:01
【问题描述】:

我的应用程序应该支持 iOS 5.0+ 我有背景 UIImage,它应该根据设备加载正确的图像。所以我创建了 5 张具有相应分辨率的图像。

  • img.png
  • img@2x.png
  • img-568h@2x.png
  • img~ipad.png
  • img@2x~ipad.png

我还设置了 Default-568h@2x.png 初始图像。然后我在 viewDidLoad 中检测我的应用正在运行和使用哪个设备

[bkgImageView setImage:[UIImage imageNamed:@"img.png"]];

加载适当的图像。所有分辨率都加载得很好,除了 iPhone 4" 之一,即 img-568h@2x.png。如果我明确加载这个

[bkgImageView setImage:[UIImage imageNamed:@"img-568h@2x.png"]];

比例不正确。那么如何自动或手动加载 4" 视网膜图像呢?

【问题讨论】:

  • 您是否检查了图像视图上的尺寸以确保其尺寸正确?
  • @Mike M:我不在视图中拉伸图像,它设置为中心。所以我认为这没有关系。
  • 我的意思是,bkgImageView 的大小是多少? (我猜你预计如果太小它会剪辑?)
  • 帧大小为320x568。 img-568h@2x.png 是两倍大。现在,如果我显式加载,它正在剪辑。
  • 此问题已在以下链接中讨论到最后。看看它是否有用stackoverflow.com/questions/12431445/…

标签: ios ios5


【解决方案1】:

在文件名末尾添加-568h 不起作用。唯一受支持的修饰符是 @2x~ipad~iphone-568h 似乎可以工作的唯一情况是启动映像,其中映像必须专门命名为 Default-568h@2x.png

您应该使用自动布局(或支柱和弹簧)来相应地调整您的屏幕。

您的问题是它会自动拉伸已经足够大的图像。

解决办法:

如果您为该设备显式加载图像,则应加载“image-568h”,并让它自动添加@2x。这样一来,它就知道这是一张高分辨率图像,并且不会尝试拉伸它。

此外,除了检测设备之外,您还可以在底部设计具有额外空间以适应 4 英寸屏幕的图像,将图像设置为 Aspect Fill,然后将其剪辑用于较小的设备。

【讨论】:

  • 有效。所以@2x 只是要缩放 UIImage 的属性。谢谢
  • 另外,除了检测设备之外,您还可以在底部设计具有额外空间以适应 4" 屏幕的图像,将图像设置为 Aspect Fill,然后将其剪辑用于较小的设备。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
  • 2016-09-01
  • 1970-01-01
  • 2012-05-18
  • 1970-01-01
  • 2014-01-09
  • 2012-03-14
相关资源
最近更新 更多