3

可能重复:
iOS 6 应用程序 - 如何处理 iPhone 5 屏幕尺寸?
iPhone4 和 iPhone5 可以使用相同的 xib 吗?

我一直在制作我的应用程序,并且一直使用 iPhone 5 的屏幕尺寸。我完全忘记了 iPhone 4,我什至拥有它,愚蠢的我……我该怎么做呢?现在我已经为 iPhone 5 编写代码,我的代码将如何在两种屏幕尺寸上工作?

这是我遇到的那种问题的模型。在第二张图片中,滑块在较小的设备上被切断了屏幕

4英寸屏幕,所有界面元素 3.5寸屏幕,接口被截断

4

2 回答 2

1

我能给你的最好建议是在你的 XIB 上尝试自动调整大小/自动对齐设置。这是避免为每个设备设置单独视图的最佳选择。

在您提供的示例中,您可以使用 Xcode 中的设置,如下所示:

在此处输入图像描述

调整它们,使滑块的原点位于屏幕底部。调整每个 UI 元素的设置,直到一切正常。

于 2012-11-09T20:36:31.423 回答
0

你能做什么完全取决于你如何定义你的界面和你的 UI 是什么样的。

如果您在 Interface Builder/Storyboard 中创建了 UI,您可能会尝试查看所有控件和视图指标设置。这方面的两个主要提示:

  1. 通过仔细选择自动调整大小的行为,您可能会得到一些改进。对于某些元素,您可能需要固定与屏幕边缘的距离,对于其他元素,您可能需要设置灵活的宽度和高度:这很大程度上取决于您的 UI。

  2. 控制相关 UI 元素正确定位的一种好方法是将它们分组到一个超级视图中,然后您可以通过保留这些元素的相对位置来置换或缩放(为其分配灵活的宽度或高度)。

如果您在代码中定义了界面,您应该检查定义所有位置和大小的方式,而不是将它们设置为绝对值,您可以将它们重新编码为屏幕大小的百分比。

我在我的应用程序中使用了这两种技术,都支持 iPhone4/5 和 iPhone/iPad。无论如何,这是一些工作。这可能是很多工作,也可能只是一些工作,这取决于您的应用程序 UI 中出现的问题。

如果您正在寻找一种自动解决此问题的方法,请尝试将缩放转换应用于您的主视图(例如,在您的应用程序委托中):

window.rootViewController.view.transform = CGAffineTransformMakeScale(1.0, 0.84);

我不确定这是否会起作用,但在最好的情况下,我认为这对感觉不可能自动修复这一事实更合适。

于 2012-11-09T20:16:24.620 回答