ios为多种屏幕尺寸调整全屏图像的大小

时间:2014-04-30 17:18:01

标签: ios uiimageview screen scale

这更像是一个设计问题。

我想了解如何处理不同iphone屏幕尺寸的图像比例:3.5英寸和4英寸。我有一个4英寸屏幕的全屏568pt图像。我应该为3.5个案例创建单独的图像还是缩小原始图像?在执行此操作时,我是否需要在代码中放入一堆if / else块来检查设备类型以确定要使用哪个图像?

有更简洁的方法吗?

3 个答案:

答案 0 :(得分:0)

如果您可以节省资源大小,最好为所有相关屏幕尺寸分配资源。但是,对于每一个他们自己的那一点。为作业加载正确资产的一种简单方法是为图像名称编写一个宏,并在每个地方使用它来加载图像,如下所示:

// S_IMG as in sized image?
#define S_IMG(img) [img stringByAppendingString: (([[UIScreen mainScreen] bounds].size.height == 568.0)? @"-568" : @"")]

然后在加载图片时你只需要

[UIImage imageNamed:S_IMG(@"horse")];

您拥有horse.pnghorse@2x.pnghorse-568@2x.png

的资产的位置

答案 1 :(得分:0)

我对屏幕尺寸有同样的疑问。我最终为每个设备使用单独的资源,并在代码中检测屏幕大小以加载正确的图像文件。

我写下了我的步骤here,我如何根据不同的屏幕尺寸进行缩放,如果纵横比不同则裁剪它们。因为有这么多的图像,我最终制作了一个工具,为我自动调整大小和裁剪每个屏幕尺寸的图像。

答案 2 :(得分:0)

您可以编写UIImage类别,UIImage + 4InchDisplay。

重载

+ (Nullable UIImage *) imageNamed: (NSString *) name; // load from main bundle

分析添加的功能

+ (BOOL) has4InchDisplay
{
     return ([UIScreen mainScreen] .bounds.size.height == 568);
}

然后连接字符串xxx-568@2x.png