如何为所有分辨率制作全屏图像
How to make a fullscreen image for all resolutions
我正在更新一个主页上有全屏图像的旧应用程序。我需要提供什么尺寸和比例的图片来支持 iPhone 4、5、6 和 6+?
如何使用 Asset Catalogs 一次性设置所有这些分辨率并获得 "just work"?我已经设置了一个 UIImageView 来填充主视图。我只想将它指向一个资产组或其他东西。
这是我的解决方案。它可能不是最好的,但我保证它会起作用。
制作原始图像的副本,并针对不同的屏幕尺寸调整这些副本的大小。对于 iPhone 4,您需要 320x480 @2x,iPhone5 需要 320x568 @2x,iPhone6 需要 375x667 @2x,iPhone 6+ 需要 414x736 @3x。请记住单位是点而不是像素。这是 link 关于 iPhone 屏幕尺寸的详细信息:iPhone Screen Sizes
在 运行 时间内检测您的屏幕尺寸并加载不同的图像以适合屏幕。您可以通过将以下代码作为类别添加到 UIImage class.
来完成此操作
代码:
#define IPHONE44S 480
#define IPHONE55S 568
#define IPHONE6 667
#define IPHONE6PLUS 736
#import "UIImage+ZCDynamicUImageSize.h"
@implementation UIImage (ZCDynamicUImageSize)
+(UIImage *)dynamicSizedImageWithName:(NSString *)name{
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
UIImage *image;
if (screenHeight == IPHONE55S) {
image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-568",name]];
}
else if (screenHeight == IPHONE6){
image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-667",name]];
}
else if (screenHeight == IPHONE6PLUS){
image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-736",name]];
}
else{
image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-480",name]];
}
return image;
}
更改所有图像的名称,名称后跟高度。比如你的图片名称是"MyImage.png",是iPhone5的图片,把它的名字改成"MyImage-568@2x.png".
最后,使用步骤 2 中创建的方法加载图像,然后将图像居中到视图的中心。
我正在更新一个主页上有全屏图像的旧应用程序。我需要提供什么尺寸和比例的图片来支持 iPhone 4、5、6 和 6+?
如何使用 Asset Catalogs 一次性设置所有这些分辨率并获得 "just work"?我已经设置了一个 UIImageView 来填充主视图。我只想将它指向一个资产组或其他东西。
这是我的解决方案。它可能不是最好的,但我保证它会起作用。
制作原始图像的副本,并针对不同的屏幕尺寸调整这些副本的大小。对于 iPhone 4,您需要 320x480 @2x,iPhone5 需要 320x568 @2x,iPhone6 需要 375x667 @2x,iPhone 6+ 需要 414x736 @3x。请记住单位是点而不是像素。这是 link 关于 iPhone 屏幕尺寸的详细信息:iPhone Screen Sizes
在 运行 时间内检测您的屏幕尺寸并加载不同的图像以适合屏幕。您可以通过将以下代码作为类别添加到 UIImage class.
来完成此操作
代码:
#define IPHONE44S 480
#define IPHONE55S 568
#define IPHONE6 667
#define IPHONE6PLUS 736
#import "UIImage+ZCDynamicUImageSize.h"
@implementation UIImage (ZCDynamicUImageSize)
+(UIImage *)dynamicSizedImageWithName:(NSString *)name{
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
UIImage *image;
if (screenHeight == IPHONE55S) {
image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-568",name]];
}
else if (screenHeight == IPHONE6){
image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-667",name]];
}
else if (screenHeight == IPHONE6PLUS){
image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-736",name]];
}
else{
image = [UIImage imageNamed:[NSString stringWithFormat:@"%@-480",name]];
}
return image;
}
更改所有图像的名称,名称后跟高度。比如你的图片名称是"MyImage.png",是iPhone5的图片,把它的名字改成"MyImage-568@2x.png".
最后,使用步骤 2 中创建的方法加载图像,然后将图像居中到视图的中心。