Как заставить UITextView заполнить оставшееся пространство - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть UIButton и UITextField бок о бок следующим образом.

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
}

В этой статье есть раздел, который, я считаю, точно решает мою проблему.Но я просто не понимаю, как.

Что мне здесь не хватает?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Вы можете сделать это без написания кода из раскадровки.Что я делаю для этого вида интерфейса:

  1. Закрепить слева от текстового поля, где вы хотите.

  2. Закрепить справа откнопку, где вы хотите.

  3. Прикрепите вершины обоих, где вы хотите их.

  4. Прикрепите правую часть текстового поля кСлева от кнопки

Это похоже на изображение ниже

enter image description here

Теперь выберите кнопку> Инспектор размеров>В разделе «Приоритет содержимого» * ​​1028 *

Измените горизонтальное значение на 750 (высокое), и все готово:)

enter image description here

Результат выглядит, как показано на рисунке ниже

enter image description here

0 голосов
/ 18 декабря 2018

Кнопка автоматически изменяет ширину в соответствии со своим содержимым, а текстовое поле и кнопка имеют автоматическую высоту.Итак, что вы хотите сделать, это тривиально:

Прикрепите левую часть текстового поля, где вы хотите это.

Пин справа от кнопки, где вы хотите.

Закрепите вершины обоих там, где вы хотите их.

Закрепите справа от текстового поля слева от кнопки и установите для этой константы небольшое число, например 8.

...