如何处理 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 的屏幕尺寸,并使所有内容在所有设备上看起来都一样的主要内容,如果未能解决你的问题,请参考以下文章
揭秘:iPhone6S听筒发烫 拆机后屏幕失灵屏幕蓝屏如何处理Android手机解析包出现错误解决办法