如何在iPad和iPhone上使用不同的图像时最小化代码?

fra*_*kie 7 objective-c ios

当我意识到我将不得不(可能?)为每个UI元素编写条件因为他们使用不同的图形时,我几乎完成了我的应用程序的iPhone版本.这将使我的代码非常混乱.我有15种不同的自定义UI控件,我无法想象为每种方法设置条件("如果ipad加载image_ipad,如果iphone加载image_iphone")是最好的方法.任何人都可以建议一个特定的技术来处理这个?或者有没有办法在视网膜和常规之间命名图像?

Mal*_*ndi 7

您只需要传递基本图像名称..假设我们的图像名称是"Apple.png",那么您将编写这样的获取图像名称UIImage *image = [UIImage ImageNamed:@"Apple.png"],并且以下情况的图像名称将为:

1. iPad >放~ipad,图片名称即可"Apple~ipad.png"

2. iPhone > put~iphone,图片名称将是"Apple~iphone.png"

3.对于视网膜显示>放@ 2x,图像名称为"Apple@2x.png"

4.如果你有ipad和iphone的视网膜显示器的diffrenet图像,它就像这样,用于iPad ,用于iPhone"Apple@2x~ipad.png""Apple@2x~iphone.png"

如果您将其命名为此,则iOS将检测最佳匹配图像名称并加载它.