iOS自动布局两个UIView具有相等的宽度

Posted

技术标签:

【中文标题】iOS自动布局两个UIView具有相等的宽度【英文标题】:iOS autolayout two UIViews to have equal width 【发布时间】:2014-07-25 15:13:43 【问题描述】:

我有两个视图,v1 和 v2,它们在 UIView 内水平对齐。我希望视图具有相同的宽度。所以我在自动布局中选择 pin 菜单并选择宽度约束。然后我转到“解决自动布局问题”菜单并单击“更新框架”,但这样做只会使我的视图 v1 和 v2 消失。有谁知道我如何让我的观点具有相同的宽度?作为比较,在 android 中,我会将视图放置在水平线性布局中,并赋予它们两个权重 1。

【问题讨论】:

【参考方案1】:

其中一个视图需要具有固定宽度,或者视图需要固定到父视图的边缘并相互固定,这样您就有了从父视图的左边缘到右边缘的一系列约束.满足这两个条件之一后,您可以选择这两个视图并在图钉菜单中选择“等宽”。

【讨论】:

【参考方案2】:

这是您设置的唯一约束吗? XCode 可能需要更多信息来避免模棱两可的布局。除了“等宽”之外,您可能还需要将边缘固定到超级视图,设置两个视图之间的距离,也许尝试设置最小宽度约束,这样它们就不会消失。 http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1

【讨论】:

我可能需要设置你提到的最小宽度。我只在自动布局调色板中看到固定宽度的选项。如何设置最小宽度? 在“[测量选项卡][1]”选项卡下(界面构建器中的右侧面板),或故事板左侧的视图层次结构面板中,您可以选择/编辑各个约束.在选项中,您将看到 ["Relation"][2] 可以将其设置为“等于”、“小于”或“大于”。选择“大于”设置最小值。 [1]:techotopia.com/images/a/a2/Iso6_view_autolayout_settings.png [2]:developer.apple.com/library/prerelease/iOS/documentation/…【参考方案3】:

我相信您也可以选择这两个视图,并在“对齐约束”中选择“前缘”和“后缘”约束,然后手动设置其中一个的宽度,另一个应遵循。

【讨论】:

【参考方案4】:

我认为任何来这个问题和答案的人也应该阅读以下answer! 它显示了一个简单的方法来做到这一点。

【讨论】:

以上是关于iOS自动布局两个UIView具有相等的宽度的主要内容,如果未能解决你的问题,请参考以下文章

如何在ios swift中以编程方式创建自动布局等宽度约束?

iOS自动布局:在ViewController中获取视图内的视图宽度

使用自动布局约束以编程方式创建四个具有相同高度和宽度的 UIView

自动布局:具有相等宽度/高度的方形图像视图

iOS自动布局:相等的空间以适应超级视图宽度[重复]

以编程方式自动布局垂直ios时出错