如何使UITextView填充剩余空间

时间:2018-12-18 05:02:51

标签: ios swift autolayout constraints nslayoutconstraint

我有一个UIButtonUITextField并排,如下。

enter image description here

我希望“添加”按钮仅具有基于内容的宽度。文本视图将占据其余空间。我有以下自动布局约束。

private func setupLayout() {
    newDeviceIdTextField.topAnchor.constraint(equalTo: deviceIdLabel.bottomAnchor, constant: 12).isActive = true
    newDeviceIdTextField.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor, constant: 12).isActive = true

    newDeviceIdButton.topAnchor.constraint(equalTo: deviceIdLabel.bottomAnchor, constant: 12).isActive = true
    newDeviceIdButton.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor, constant: -12).isActive = true
    newDeviceIdButton.leadingAnchor.constraint(equalTo: newDeviceIdTextField.trailingAnchor, constant: 0).isActive = true
}

this文章中,有一节我认为可以完全解决我的问题。但是我只是不明白如何。

我在这里想念什么?

2 个答案:

答案 0 :(得分:3)

按钮会自动调整其宽度以适合其内容,并且文本字段和按钮都具有自动高度。因此,您要做的只是微不足道的:

将文本字段的左侧固定在所需的位置。

将按钮的右侧固定在所需的位置。

将两者的顶部都固定在想要的位置。

将文本字段的右侧插入按钮的左侧,并将该常数设置为一个较小的数字,例如8。

答案 1 :(得分:0)

您无需编写故事板中的代码即可执行此操作。我为这种UI做的是

  1. 将文本字段的左侧固定在您想要的位置。

  2. 将按钮的右侧固定在所需的位置。

  3. 将两者的顶部都固定在上面。

  4. 将文本字段的右侧固定在按钮的左侧

如下图所示

enter image description here

现在选择按钮>尺寸检查器>在包含优先级的内容中

将“水平”更改为750(高),然后完成:)

enter image description here

结果如下图

enter image description here