这更像是一个设计问题。
我想了解如何处理不同iphone屏幕尺寸的图像比例:3.5英寸和4英寸。我有一个4英寸屏幕的全屏568pt图像。我应该为3.5个案例创建单独的图像还是缩小原始图像?在执行此操作时,我是否需要在代码中放入一堆if / else块来检查设备类型以确定要使用哪个图像?
有更简洁的方法吗?
答案 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.png
,horse@2x.png
和horse-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