iOS中的水平约束

iOS中的水平约束,ios,constraints,Ios,Constraints,在我的故事板中,我的视图控制器有两个容器视图,如下所示 第二个容器视图是,我很难设置约束 当我实际运行应用程序时,文本字段变得非常窄。我的水平约束显然不正确,但我无法确定正确的设置 以下是我目前拥有的: FilterIcon - trailing space to superview (right): 0 - Align Center Y - Leading space to "Go": 16 - Equal height to

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

第二个容器视图是,我很难设置约束

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

以下是我目前拥有的:

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框

相反,我得到的结果是:


我缺少什么约束条件?

我认为可以将两个按钮的高度设置为宽度。然后在文本字段中留下其他空间。

这样配置怎么样

文本框

  • superview的前导空间(左):0
  • 尾随空格键:8
  • 与过滤器图标等高
  • 水平压缩优先级:752
前进按钮

  • 对齐中心Y
  • 过滤器图标的尾随空间:16
  • 文本框的前导空格:8
  • 水平拥抱优先级:251
过滤器图标

  • 水平拥抱优先级:251
  • 对齐中心Y
  • 引导“前进”的空间:16
  • 与文本框等高
这是我的截图


如果您不想设置优先级,您可以为过滤器图标和Go按钮设置宽度约束。有关详细信息,在

中有一个非常好的教程,介绍了内容拥抱优先级和抗压缩优先级。请为文本字段的宽度和高度指定纵横比,并为superview指定中心y。这肯定会奏效的。但请确保在给出纵横比时,文本字段的宽度符合要求。

尝试自动约束…尝试向文本字段添加宽度约束。或者为过滤器图标和go按钮添加宽度约束。为过滤器图标和“go”的前导添加优先级应该是一个快速修复方法,可以部分解决此问题,因为过滤器图标和go按钮位于正确的位置,但文本框非常窄。我想知道我是否必须为它设置一个宽度?删除文本字段的“水平拥抱优先级”,然后它应该可以工作。我只是好奇为什么要设置这个约束,因为它与您想要的相反。