Xcode中自动布局约束的新手。我有一个底部视图,如UITabBar
和6 UIButtons
。在没有约束的情况下,我将这些按钮与每个按钮的5个空格填充对齐,每个按钮的宽度为50。
现在,我试图通过使用自动布局来支持所有屏幕尺寸。
在Storyboard约束中,我为6个按钮设置了相等的宽度,我做了60 每个按钮之间的空间。我将第一个按钮0设置为前导空格和 我将最后一个按钮0设置为尾部约束。
我希望所有设备尺寸的视图之间都有buttons with equal width and flexible spaces
。
任何人都可以请求帮助吗?寻求帮助。提前谢谢。
答案 0 :(得分:56)
检查此图片,并制定如下约束条件......
结果: - 以不同尺寸预览
使用Stackview (适用于iOS 9.0及更高版本)
注意:如果您必须为iOS 9及更高版本制作应用,那么
UIStackView
是另一种选择
答案 1 :(得分:9)
使用iOS 9和Xcode 7,您现在可以获得UIStackView
的预期结果,并且只有3或4个自动布局约束。
以下逐步使用Storyboard。
UIButton
和5个UIView
。水平对齐它们。给你的观点一些颜色。Stack
按钮。您将在UIStackView
。Utilities
面板,然后选择Attributes Inspector
项。在那里,点击Distribution
按钮并选择"同等填写"。Pin
按钮,选中Height
按钮,添加所需的值,然后单击Add 1 Constraint
按钮。作为替代方案,如果您希望堆栈视图的每个元素的高度与其宽度相匹配,请选择堆栈视图的第一个按钮,单击Pin
按钮,选择Aspect Ratio
和点击Add 1 Constraint
按钮。
您可以在Document outline
(左侧面板)中检查宽高比约束是否正确,如果需要,可以使用Attribute inspector
(右侧面板)中的其他约束进行更改。
pin
按钮,确保未选择Constrain to margin
按钮,并将前导,尾随和底部约束设置为零。确保底部约束与视图控制器的视图相关。然后,将Update Frames
按钮更改为"容器中的所有帧"。您现在可以点击Add 3 Constraints
按钮。您的堆栈视图现已设置。
进一步评论:
如果您不需要彩色视图宽度以匹配按钮宽度,则可以构建仅包含UIButtons
的堆栈视图,只需在Attribute inspector
中为堆栈视图添加间距。但是,您必须找到一种在堆栈视图后面添加背景颜色的方法。 Apple在UIKit Framework Reference中说明了这一点:
UIStackView是UIView的非渲染子类。它不是 提供自己的任何用户界面。相反,它只是管理 其布置视图的位置和大小。结果,一些属性 (如backgroundColor)对堆栈视图没有影响。
我构建了一个包含4种不同堆栈视图的Xcode项目:
UIButton
内在尺寸的高度,UIButton
"宽度和高度相等的"约束,您可以在此GitHub repo找到此项目。
答案 2 :(得分:0)
选择所有按钮并在Xcode的Pin菜单中
答案 3 :(得分:0)
iOS 9有一个名为UIStackView的新UIKit类。这对于水平或垂直堆叠视图非常有帮助,就像您想要的那样。您应该查看本教程:Raywenderlich: UIStackView Tutorial
答案 4 :(得分:0)