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

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

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

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

在 iPhone 6 上

在 iPhone 5 上

在 iPhone iOS 7.1 上

【问题讨论】:

    标签: ios objective-c iphone xcode autolayout


    【解决方案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中你可以根据不同的屏幕尺寸设置不同的约束

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多