iOS中的水平约束

时间:2016-10-11 00:53:01

标签: ios constraints

在我的故事板中,我的视图控制器有两个容器视图,如下所示

enter image description here 第二个容器视图是它很难设置约束条件。

当我实际运行应用程序时,文本字段变得非常狭窄。我的水平约束显然是不正确的,但我无法找出正确的设置。

这是我目前所拥有的:

FilterIcon - trailing space to superview (right): 0
           - Align Center Y
           - Leading space to "Go": 16
           - Equal height to text box

Go Button  - align center Y
           - trailing space to filter icon: 16
           - leading space to text box: 8

Text Box   - leading space to superview (left): 0
           - trailing space to Go Button: 8
           - equal height to Filter icon
           - horizontal hugging priority: highest of 3 elements 751

我认为文本框会从左边距扩展,直到它到达Go框,该框根据过滤器图标设置在右边。

相反,我得到了这个结果: enter image description here

我对约束缺少什么?

3 个答案:

答案 0 :(得分:1)

如此配置怎么样?

文本框

  • 领先于superview的空间(左):0
  • 尾随空格到Go Button:8
  • 与过滤器图标相等的高度
  • 横向压缩优先级:752

转到按钮

  • 对齐中心Y
  • 尾随空格以过滤图标:16
  • 将空格引至文本框:8
  • 横向拥抱优先级:251

过滤器图标

  • 横向拥抱优先级:251
  • Align Center Y
  • 领导空间到" Go":16
  • 文本框的高度相等

这是我的截图。

enter image description here

如果您不想设置优先级,则可以为Filter Icon和Go Button设置宽度约束。有关更多信息,请参阅here

中有关内容拥抱优先级和压缩阻力优先级的非常好的教程

答案 1 :(得分:0)

我认为您可以将两个按钮的高度设置为等于宽度。然后其他空格留给文本字段。

答案 2 :(得分:0)

为宽度和高度赋予文本字段宽高比,并将中心y赋予superview。这肯定会奏效。但请确保在提供宽高比时,您的文本字段具有所需的宽度。