Objective c @2x在UIImage imageWithNamed上工作吗?

Objective c @2x在UIImage imageWithNamed上工作吗?,objective-c,xcode,uiimage,retina-display,Objective C,Xcode,Uiimage,Retina Display,让我们看看这段代码 如果我使用视网膜显示器,图像会被称为句柄吗-slider@2x而不是手柄滑块 请注意,这可能会引发一个问题。想象一下,如果我加载一个图像只是为了处理它,我真的很想加载句柄滑块,或者句柄-slider@2x? 然后让iOS来推翻我的决定,任意加载@2x图像将是一种愚蠢的行为 另一方面,大多数时候,我使用UIImage ImageName来填充按钮。在这种情况下,添加@2x非常有意义 在任何情况下,苹果最终会使用哪条路径?如果可能,参考是什么 我搜索了一下 大多数答案与其中一个答

让我们看看这段代码

如果我使用视网膜显示器,图像会被称为句柄吗-slider@2x而不是手柄滑块

请注意,这可能会引发一个问题。想象一下,如果我加载一个图像只是为了处理它,我真的很想加载句柄滑块,或者句柄-slider@2x? 然后让iOS来推翻我的决定,任意加载@2x图像将是一种愚蠢的行为

另一方面,大多数时候,我使用UIImage ImageName来填充按钮。在这种情况下,添加@2x非常有意义

在任何情况下,苹果最终会使用哪条路径?如果可能,参考是什么

我搜索了一下

大多数答案与其中一个答案不一致。

for[UIImage imageNamed:]的答案正好包含您想要知道的信息

此方法在系统缓存中查找具有 指定名称并返回该对象(如果存在)。如果匹配 图像对象不在缓存中,此方法将加载图像 指定文件中的数据,将其缓存,然后返回 结果对象

在运行iOS 4或更高版本的设备上,如果 设备屏幕的刻度为1.0。如果屏幕的刻度为2.0, 此方法首先搜索具有相同文件名的图像文件 附加了@2x后缀。例如,如果文件名为 按钮,它首先搜索button@2x. 如果它找到一个2x,它将加载 并设置返回的UIImage对象的缩放属性 到2.0。否则,它将加载未修改的文件名并设置比例 属性设置为1.0


检查这个问题:这会一劳永逸地解决它。如果我们有stackOverflow,谁需要文件。
[self.distanceSlider setThumbImage:[UIImage imageNamed:@"handle-slider"] forState:UIControlStateNormal];