【问题标题】:Xcode 6 auto layout programmatically?Xcode 6 以编程方式自动布局?
【发布时间】:2015-09-12 12:49:31
【问题描述】:

我的问题出在这张图片上:

我在使用 Xcode 6 时遇到了这个问题,我想知道是否有办法以编程方式解决这个问题...我想编写一个代码,让我的视图控制器适应所有设备...有可能吗?? (我已经手动尝试过自动布局,但我真的很糟糕)...

【问题讨论】:

    标签: ios xcode layout


    【解决方案1】:

    似乎您实施了过于严格的约束。正如我在屏幕截图中看到的那样,您可能已经为按钮和输入设置了严格的宽度约束,而不是彼此之间的相等宽度或相等间距。使您的约束更加灵活。首选>=,<= 约束、等宽约束、前导/尾随约束。与严格的布局相比,您需要更多的布局,但您将获得真正的自适应布局。

    要在视图之间获得灵活的相等间距,您可能会发现间隔视图的概念很有帮助。简而言之,放置一个透明的 UIView 并为其设置一些约束。要了解更多信息,请阅读apple docs。如果您更喜欢视频(就像我一样 :)) - 观看 wwdc 视频,它们很棒。例如,Auto Layout by ExampleTaking Control of Auto Layout in Xcode 5

    作为相同排列按钮的示例,请看以下屏幕截图: 这是通过稍微复杂但可以理解的约束集完成的:

    所有按钮都具有彼此相等的宽度约束。所有间隔视图彼此具有相等的宽度约束。每个间隔视图对按钮或父视图的前导/尾随都有前导/尾随约束。

    在 iOS 9 中,您有更多选择:

    • 你可以使用UILayoutGuide代替间隔视图
    • UIStackView 允许实现完全没有约束的相同布局

    我建议你观看新的 WWDC 2015 视频,“自动布局之谜”,Part1Part2

    【讨论】:

    • 使用 stoarybaord 非常简单,但 @Pedro Costa 想通过编程设置约束,他想使用 Visual Format Language (VFL)
    • 这个任务可以在 IB 和代码中解决,但仍然需要对自动布局有深刻的理解。此外,视觉格式语言不是灵丹妙药,在很多情况下您无法通过 VFL 完全描述您的布局,您仍然需要进行一些额外的编码。像 PureLayout 这样的库也可以在这里提供帮助。
    【解决方案2】:

    您好@Pedro Costa这里不可能写出您上述问题的解决方案。我正在给一个 link 提供一些运动来研究它。太简单了,难以理解。

    这会让你知道如何设置它。

    以编程方式自动布局约束

    http://www.thinkandbuild.it/learn-to-love-auto-layout-programmatically/

    回家,这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多