调整为 Iphone 6 设计的应用程序大小以在 iphone 5s 中正确缩放

Posted

技术标签:

【中文标题】调整为 Iphone 6 设计的应用程序大小以在 iphone 5s 中正确缩放【英文标题】:Resize app designed for Iphone 6 to scale correctly in iphone 5s 【发布时间】:2015-01-20 11:47:31 【问题描述】:

好的,这就是我为没有尺寸等级和自动布局的 iphone 6 屏幕设计的应用程序的问题。 在故事板中如下所示。如您所见,其模拟尺寸为 4.7 英寸。

在 iphone 6 设备上运行时,它可以完美运行。 但是,当尝试在 iphone 6 以外的其他设备上运行该应用程序时,它不会按比例缩放。

我的希望是,如果我删除了仅保留 iphone 6 尺寸的 lanuch 屏幕图像,它将缩放以适应其他屏幕,看起来就像在 iphone 6 上运行时仅根据设备放大或缩小一样。

p>

我的启动屏幕现在是这样的

它确实缩放了应用程序,但它以错误的比例缩放了应用程序,使它看起来像这样被切碎了。

Iphone 5s 版本的应用是这样的 如您所见,它可以正确缩放,但与正确缩放的 iphone 6 版本相比,该方面出现了错误。

这是一个 ipad 版本,看起来像 iphone 5s 版本缩放错误。

在我看来,缩放工作正常,因为我已经删除了除 4.7 显示器(iphone 6)之外的所有启动图像但是问题似乎是它缩放保持 iphone 5 的宽度使 iphone 6 显示宽的。

我尝试为所有设备添加启动图像,但问题是我需要使用自动布局和大小类才能使其工作。

有什么方法可以告诉缩放以保持纵横比,但使用 iPhone 6 的宽度和高度,而不使用尺寸类等。

让问题更简单。有什么方法可以扩展为严格的 iphone 6 制作的应用程序,以便调整为 iphone 5s/ipad?

非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

好吧,删除其他启动图像的“技巧”不起作用,正如您自己注意到的那样。这种自动缩放仅适用于 4" 到 4.7" 和 5.5",并且仅支持新应用上的旧应用设备,不适用于通用“我懒得支持所有尺寸”用例.. ;-) 除此之外,您绝对应该支持本机分辨率。

所以,回答您的问题:您可以只使用自动布局。这绝对是首选方法——毕竟这正是它的用例。

或者,如果您真的不想或不能使用自动布局,则需要确保正确设置自动调整大小的蒙版(例如,在需要水平增长/缩小的内容上设置“灵活宽度”等等),或者在代码中手动调整你的帧(这部分违背了 IB 的目的)。

【讨论】:

非常感谢您的好回答!我想我认为可以扩展任何应用程序大小,但我确实意识到它唯一的 iphone 5 可以扩展而不是相反......无论如何,我将不得不重做大小类和自动布局以使其正确。【参考方案2】:

如果您没有使用自动布局或大小类,您唯一的希望是在您的LoginViewControllerviewDidAppearviewDidLayoutSubviews 方法中以编程方式单独更改每个元素的位置/大小。您还必须在方向更改时执行此操作(如果您的应用支持)。

使用自动布局/大小类可以轻松避免很多工作!

【讨论】:

两个cmets: 1)对于简单的东西,设置正确的自动调整大小掩码就足够了; 2)viewDidAppear不一定是布局代码的最佳位置,我宁愿考虑viewDidLayoutSubviews

以上是关于调整为 Iphone 6 设计的应用程序大小以在 iphone 5s 中正确缩放的主要内容,如果未能解决你的问题,请参考以下文章

如何从 iphone 6 到 iphone 6+ 调整按钮图像和按钮大小

iPhone 6 闪屏几秒钟后调整大小

如何为使用自动调整大小开发的应用程序支持 iPhone X 设计

尝试调整我的 UIView 容器以适应较小的 iPhone 屏幕尺寸

为不同的 iPhone 设备自动调整 CollectionView 单元的大小

适用于 iPad / iPhone 5、6、6+ 的 UITableView 调整大小