Как сохранить постоянную высоту UIView, когда текст UILabel варьируется от 1 до 3 строк?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как сохранить постоянную высоту UIView, когда текст UILabel варьируется от 1 до 3 строк?

Сообщение Anonymous »

У меня есть структура представления, реализованная в Swift с использованием UIKit, где UIView содержит UILabel. UILabel может содержать текст минимум из 1 строки и максимум из 3 строк. Я хочу, чтобы высота UIView оставалась постоянной, даже если UILabel содержит только 1 строку текста.
Вот подробности:
UIView имеет 12-точечные ограничения на всех краях (верхнем, ведущем, нижнем и конечном) UILabel.
UILabel должен увеличиваться, чтобы вместить до 3 строк, но UIView должен оставаться той же высоты, даже если текст имеет только 1 строка.
Как добавить ограничение к UIView, чтобы его высота оставалась неизменной независимо от того, содержит ли UILabel 1 строку или до 3 строк текста?
Будем очень признательны за любую помощь или рекомендации!
Изображение

На данный момент мой код выглядит примерно так, как показано ниже.
class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

// Create the parent view (container for the UILabel)
let containerView = UIView()
containerView.translatesAutoresizingMaskIntoConstraints = false
containerView.backgroundColor = .lightGray
view.addSubview(containerView)

// Create the UILabel
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.numberOfLines = 3 // Max number of lines
label.text = "This is a sample text for UILabel"
label.font = UIFont.systemFont(ofSize: 17)

containerView.addSubview(label)

// Add constraints for the containerView (assuming it has 12 points padding to the edges)
NSLayoutConstraint.activate([
containerView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
containerView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20),
containerView.topAnchor.constraint(equalTo: view.topAnchor, constant: 100)
])

// Add constraints for the UILabel within the containerView
NSLayoutConstraint.activate([
label.leadingAnchor.constraint(equalTo: containerView.leadingAnchor, constant: 12),
label.trailingAnchor.constraint(equalTo: containerView.trailingAnchor, constant: -12),
label.topAnchor.constraint(equalTo: containerView.topAnchor, constant: 12),
label.bottomAnchor.constraint(equalTo: containerView.bottomAnchor, constant: -12)
])
}
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... 1-and-3-li
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»