自2014年起如何支持各种iPhone屏幕尺寸?

临时用户名

我几乎完成了第一个iPhone应用程序的构建,并试图添加背景图像,并发现它有点令人困惑,因为如今在不同的iPhone版本中,大约有3或4个不同尺寸的屏幕,具有不同的启动分辨率。

因此,尽管我了解了整个过程[email protected],但我仍然不知道我真正需要什么。如果我想让我的应用程序在iPhone 4 / 4s,5s / 5c,6/6 +上运行,我需要多少个不同版本的背景图像,以及什么尺寸和分辨率?

我在Google周围搜索,没有找到2014年最新的一致答案。

另外,如果iPhone 6为1334x750 @ 3x,这是否意味着我应该包含4002x2250的背景?然后对于1920x1080 iPhone 6+ @ 3x,是否为5760 x 3240的图像?太好了!我觉得我必须对此有不正确的理解。

wcd

如果要支持iPhone 6 / Plus的本机分辨率,则需要添加启动图像(iOS 8之前的版本)或启动屏幕xib(iOS 8)。

iPhone 4 / 4S:640 x 960

iPhone 5 / 5S:640 x 1136

iPhone 6:750 x 1334

iPhont 6 Plus:1242 x 2208

这意味着如果要支持这些设备,则需要准备4个具有上述分辨率的启动映像。您可以使用iOS模拟器来捕获具有不同分辨率的屏幕截图。compatibility mode如果找不到特定分辨率的启动图像,则您的应用将在新的分辨率设备上运行compatibility mode表示您的视图将在仍然具有相同的逻辑尺寸的情况下进行缩放以适应新的屏幕尺寸。

编辑:

我认为op会误解其作用@2x@3x含义。iPhone 6的分辨率为750(pixels) x 1334(pixels), 326 pixels per inch这是真实的分辨率。并且375(points) x 667(points)是如果支持初始分辨率下的逻辑大小。iPhone 6 Plus的分辨率为1242(pixels) x 2208(pixels), 401 pixels per inch,逻辑大小为414(points) x 736(points)

这是具有不同分辨率的图像在iOS设备上的工作方式:

假设您要在iPhone 4s,iPhone 5 / 5S,iPhone 6 / plus上运行您的应用程序。您应该做的第一件事是提供4个启动映像以支持这些设备的本机分辨率。当iOS启动您的应用程序时,它将检查该应用程序是否提供了正确的启动图像以支持当前设备的本机分辨率。如果iOS找到它,则在启动时使用它,并且屏幕的逻辑大小正确,您的应用程序将正常运行。否则,您的应用程序将compatibility mode在其中缩放所有视图的情况下运行。

假设foo.png您的应用中有一个名为的图像,其逻辑大小为100(points) x 100(points)您希望该图像在以上所有设备中看起来都一样。您应该提供此图像的2个版本。一个是200(pixels) x 200 (pixels)和应该被命名foo.png@2x,另一个300(pixels) x 300(pixels)命名foo.png@3x如果[UIImage imageNamed:@"foo"]在iPhone 6 plus以外的设备上使用加载该图像,则该应用程序将加载名为的图像foo.png@2x否则,应用程序将加载foo.png@3x并采样到300 * 84%(像素)x 300 * 84%(像素)。

而且,如果您从URL加载图像并需要在运行时呈现它。假设您得到的尺寸是{width:100, height:100},比例尺是1.0这意味着该图像真实大小为100 * 1.0(pixels) x 100 * 1.0(pixels如果您不希望缩放它,则需要自己计算逻辑大小。您可以这样操作:

UIImage *image = ... // you get it from an url
CGFloat scale = [UIScreen mainScreen].scale;
CGFloat width = image.size.width / scale; 
CGFloat height = image.size.height / scale;
CGRect frame = CGRectMake(50.0f, 50.0f, width, height)];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];
imageView.contentMode = UIViewContentModeCenter;
imageView.image = image;
[self.view addSubview:imageView];

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何支持更高的iPhone 5屏幕尺寸?

如何为应用程序支持iPhone X分辨率或屏幕尺寸?

iPhone 5屏幕尺寸如何命名图像?

使表格适合各种屏幕尺寸

如何以最小的宽度支持不同的屏幕尺寸?

如何创建支持不同屏幕尺寸的子文件夹?

如何让 AutoLayout 适合 iPhone 的所有尺寸屏幕

iOS 6应用-如何处理iPhone 5屏幕尺寸?

支持所有iPhone尺寸

iPhone 6(Plus)屏幕尺寸

如何使用设备屏幕尺寸以编程方式快速将我的iPhone应用程序支持多个iOS版本和设备

如何在各种屏幕尺寸上保持绝对 Touchables 的一致性?

各种屏幕密度/尺寸的图像尺寸:最佳做法

在角材料表中减小屏幕尺寸时如何支持相同的列尺寸

Titanium SDK如何在其支持的各种平台上运行(2013年)?

根据各种屏幕尺寸自动布局收集视图

适用于各种屏幕尺寸的Android ImageButton

如何在 Flutter 编程语言中为各种屏幕尺寸的设备在堆栈内安排一个按钮?(颤动)

平板电脑的屏幕尺寸支持失败(计算)

创建支持不同屏幕尺寸的相同 UI?

支持多种屏幕尺寸和方向

Android 支持以英寸为单位的屏幕尺寸

android 约束布局支持不同的屏幕尺寸

如何创建一个支持所有屏幕尺寸的视图?

如何使用支持所有不同尺寸屏幕的 ConstraintLayout 对齐视图?

我们如何支持不同的屏幕尺寸,例如背景图像?[Android Studio]

我如何在移动游戏开发中支持多种屏幕尺寸

如何使用android支持不同的屏幕尺寸(不同的手机)

如何在没有模拟器的情况下模拟较小的iPhone屏幕尺寸?