【发布时间】:2015-09-12 12:49:31
【问题描述】:
我的问题出在这张图片上:
我在使用 Xcode 6 时遇到了这个问题,我想知道是否有办法以编程方式解决这个问题...我想编写一个代码,让我的视图控制器适应所有设备...有可能吗?? (我已经手动尝试过自动布局,但我真的很糟糕)...
【问题讨论】:
我的问题出在这张图片上:
我在使用 Xcode 6 时遇到了这个问题,我想知道是否有办法以编程方式解决这个问题...我想编写一个代码,让我的视图控制器适应所有设备...有可能吗?? (我已经手动尝试过自动布局,但我真的很糟糕)...
【问题讨论】:
似乎您实施了过于严格的约束。正如我在屏幕截图中看到的那样,您可能已经为按钮和输入设置了严格的宽度约束,而不是彼此之间的相等宽度或相等间距。使您的约束更加灵活。首选>=,<= 约束、等宽约束、前导/尾随约束。与严格的布局相比,您需要更多的布局,但您将获得真正的自适应布局。
要在视图之间获得灵活的相等间距,您可能会发现间隔视图的概念很有帮助。简而言之,放置一个透明的 UIView 并为其设置一些约束。要了解更多信息,请阅读apple docs。如果您更喜欢视频(就像我一样 :)) - 观看 wwdc 视频,它们很棒。例如,Auto Layout by Example 或 Taking Control of Auto Layout in Xcode 5。
作为相同排列按钮的示例,请看以下屏幕截图: 这是通过稍微复杂但可以理解的约束集完成的:
所有按钮都具有彼此相等的宽度约束。所有间隔视图彼此具有相等的宽度约束。每个间隔视图对按钮或父视图的前导/尾随都有前导/尾随约束。
在 iOS 9 中,您有更多选择:
UILayoutGuide代替间隔视图
UIStackView 允许实现完全没有约束的相同布局【讨论】:
您好@Pedro Costa这里不可能写出您上述问题的解决方案。我正在给一个 link 提供一些运动来研究它。太简单了,难以理解。
这会让你知道如何设置它。
http://www.thinkandbuild.it/learn-to-love-auto-layout-programmatically/
回家,这会有所帮助。
【讨论】: