如何处理 iPhone 4s、5 和 6 的屏幕尺寸,并使所有内容在所有设备上看起来都一样

Posted

技术标签:

【中文标题】如何处理 iPhone 4s、5 和 6 的屏幕尺寸,并使所有内容在所有设备上看起来都一样【英文标题】:How to handle iPhone 4s, 5 and 6 screen size, and make all the contents look the same across al the devices 【发布时间】:2014-10-30 23:14:39 【问题描述】:

我使用的是 Xcode 6.1,在我拥有的一个视图中,包含许多标签。但是,这些标签在每个不同的设备中看起来都不同。虽然我已经为所有标签添加了约束,但仍然面临同样的问题。

如何在所有设备上获得相同的视图布局? 如何使每个标签的宽度和高度灵活,取决于屏幕尺寸? 我需要为每个设备设计不同的 xib 吗?

以下图像显示了正在获取的结果,启用了自动调整大小并添加了常量。

在 iPhone 6 上

在 iPhone 5 上

在 iPhone ios 7.1 上

【问题讨论】:

【参考方案1】:

我们提供了一个简单的解决方案。使用纵横比约束,我们可以获得所有设备屏幕的相对外观。

我遇到了同样的问题,我发现了这个>> http://mathewsanders.com/designing-adaptive-layouts-for-iphone-6-plus/

因此,在针对最低到最高屏幕分辨率进行设计时,我们无法为所有控件设置特定的宽度和高度,因为它可能看起来很奇怪。因此,使用此约束,我们可以对所有屏幕进行相对查找。

如果您不想使用约束或想要保持相同的宽度和高度,您可以添加滚动视图来容纳所有控件。为此,您可以为具有固定内容大小的滚动视图设置调整大小的框架。

【讨论】:

这是必须正确的答案。我必须学习如何正确地进行约束。此外,当有这样一个讨厌的表单时,将所有字段都放在滚动视图中是个好主意。【参考方案2】:

要解决这个问题...

1) 转到 xib 文件并取消选中自动布局

2) 然后按照以下方式为每个子视图手动设置自动调整大小。

【讨论】:

解决了我的问题 :) 谢谢【参考方案3】:

使用self.view.bounds.size.width获取屏幕宽度,然后使用相对值初始化所有标签。

【讨论】:

嗯,这就是我所做的,但我还有很多其他类似的故事板,为所有这些故事板编写代码需要时间,在这种情况下我必须禁用自动布局。无论如何感谢您的参与。【参考方案4】:

一个灵魂是您可以为每个屏幕尺寸设计一个故事板,例如一个用于 iphone 5、一个用于 iphone 6 和一个用于 iphone 6+,并且在您的 AppDelegate 方法“didFinishLaunchingWithOptions”中,您可以获得相应的屏幕尺寸和弹出窗口故事板 在这个wasy中你可以根据不同的屏幕尺寸设置不同的约束

【讨论】:

以上是关于如何处理 iPhone 4s、5 和 6 的屏幕尺寸,并使所有内容在所有设备上看起来都一样的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 libGDX 中的不同纵横比?

如何处理所有可用 iPhone 分辨率的图像比例?

如何处理 iPhone 5 视网膜显示检查?

揭秘:iPhone6S听筒发烫 拆机后屏幕失灵屏幕蓝屏如何处理Android手机解析包出现错误解决办法

如何使用 iOS 6 sdk 为 iPhone 4s 或 iPhone 4 制作视图控制器?

查看在 iPhone 5s 和 5c (iOS 7.1) 中打开,如 iPhone 4s 屏幕