【问题标题】:Views not laying out properly for iPhone 4iPhone 4 的视图布局不正确
【发布时间】:2014-05-20 20:11:39
【问题描述】:

我已经使用Auto LayoutStoryboard 中布置了我的ViewControllers,在iPhone 5 上一切看起来都很完美。现在我正在测试iPhone 4,但事情不在正确的位置。例如,我在其父 UIView 的底部放置了一个 UIView。它的宽度是屏幕宽度,它的高度是 100。它在 iPhone 5 上显示得很好,但在 iPhone 4 上根本没有出现(我认为这是因为它是在 iPhone 5 应该的高度绘制的,这也是远低于屏幕 4)

如果我使用自动布局,我还需要调整我的视图吗?如果是这样,那么使用自动布局有什么意义?

【问题讨论】:

  • 当你以你想要的方式拥有它时,使用底部的奇怪按钮“重置为建议的约束”。 xcode 有时很聪明
  • @OscarApeland 不确定您指的是哪个“奇怪的按钮”?
  • 您只需要使用正确的约束。如果您在屏幕底部附近有一个视图,它应该对底部布局指南有间距约束,以便在两种屏幕尺寸下它与底部的距离相同。
  • @rdelmar 我会手动添加间距约束并将距离设置为屏幕高度的差异?
  • 不,你可以在 IB 中添加它,它可以只有一个值,比如 8——然后视图会在两种屏幕尺寸的屏幕底部上方出现 8 点。

标签: ios iphone objective-c uiview autolayout


【解决方案1】:

这是使您的布局适合视网膜和非视网膜外形尺寸的方法。 我并不是说这些是规则,但我遵循这种方法并且几乎不会遇到任何难以解决的冲突。

  • 首先:始终尝试在非视网膜尺寸设计故事板(我的意思是在你的案例中设计它在 iPhone4 尺寸上,然后应用视网膜尺寸并验证它是否适合 iPhone5 尺寸。)。李>
  • 您的视图在其父视图的底部肯定会有“Y”位置的固定约束。通常,您需要进行相对约束。所以当你在 iPhone4 上显示它时,Y 和高度可能会超出 Y 轴的最大值。
  • 尝试在助理编辑器中为您的布局检查这些值,例如 topSpaceleadingSpacetrailingSpacebottomSpace
  • AutoLayout 并不意味着它会满足您的需求,但它会相应地调整组件。
  • 如果 Storyboard 中出现任何警告,请尝试使用提供的帮助和建议,例如 add missing constraintadjust frame to suggested

Storyboard 永远不会在每个屏幕或查看您的设计时都以相同的方式运行。你需要越来越多地练习它,你就会知道如何添加约束。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2018-12-05
    • 2019-06-24
    • 1970-01-01
    相关资源
    最近更新 更多