gpt4 book ai didi

iphone - 在代码中指定图像时,不使用 Retina 图标 (@2x)

转载 作者:行者123 更新时间:2023-12-03 18:25:29 24 4
gpt4 key购买 nike

我将 play.png 图像放置到我的 View 中。当 View 最初加载时,iPhone 4 会抓取相应的 play@2x.png 文件,它看起来很棒。但是,当我点击播放按钮时,我的代码会将其替换为pause.png 文件。然后,当我点击pause.png以恢复play.png时,它使用原始的play.png文件(不是我认为它会自动引用的@2x版本)。

这是我尝试使用的代码:

[button setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];

那么,如果我在初始 View 加载后交换文件,是否必须在 IF 语句中手动指定 @2x 版本?如果是这样, UIScreen.scale 是为此使用的最佳属性吗?

我目前正在使用这样的代码:

if ([UIScreen mainScreen].scale > 1.0) 
{
[button setImage:[UIImage imageNamed:@"play@2x.png"] forState:UIControlStateNormal];
}
else
{
[button setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
}

它工作正常,但其中的 IF 语句很烦人,而且看起来有点脆弱。

预先感谢所有聪明人。

最佳答案

条件语句是不必要的。以下行就足够了:

[button setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];

在 iOS 4.0 中,如果设备是 iPhone 4 并且具有视网膜显示屏,则 imageNamed: 方法会自动查找“@2x”文件名后缀。在以前版本的 iPhone OS 中, imageNamed: 方法仅查找您编写的内容(即较低分辨率的图像)。这是可行的,因为 iPhone 4 的操作系统版本不能低于 4.0,因此您的视网膜显示屏用户将始终拥有更高分辨率的图稿。

关于iphone - 在代码中指定图像时,不使用 Retina 图标 (@2x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3442239/

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