Xcode 6 auto layout programmatically?

时间:2015-06-25 18:46:10

标签: ios xcode layout

My problem is on this image: I have this problem with Xcode 6 and I would like to know if there is a way to solve this problem programmatically... I would like to write a code which adapt my view controller to all devices... Is it possible?? (I already tried auto layout manually but I am really bad)...

2 个答案:

答案 0 :(得分:0)

好像你实施了太严格的约束。正如我在屏幕截图中看到的那样,您可能为按钮和输入设置了一个强大的宽度约束,而不是相等的宽度或相等的间距。使您的约束更灵活。首选>=<=约束,相等的宽度约束,前导/尾随约束。与严格的相比,你需要更多它们,但你会得到一个真正的自适应布局。

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

作为同等排列按钮的示例,请查看此屏幕截图: spacer views screenshot 这样做有点复杂,但设置了可理解的约束:constraints screenshot

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

使用iOS 9,您还可以选择其他选项:

  • 您可以使用UILayoutGuide
  • 代替spacer
  • UIStackView允许实现相同的布局,完全没有约束

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

答案 1 :(得分:0)

@Pedro Costa 这里不可能写出上述问题的解决方案。我正在给一个链接提供一些动作来研究它。它太简单易懂了。

这可以让你知道如何设置它。

以编程方式自动布局约束

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

首页,这将有所帮助。