UILabel уменьшился после перестановки в UIStackView.IOS

Программируем под IOS
Ответить
Anonymous
 UILabel уменьшился после перестановки в UIStackView.

Сообщение Anonymous »

Вот как это выглядит в viewDidLoad:
[img]https://i.stack.imgur. com/lwsCCl.jpg[/img]

В какой-то момент мне нужно его обновить, поэтому я просто удаляю все подпредставления из UIStackView и добавляю их снова с обновленными данными. Почему тогда оно уменьшилось?
Изображение

Что делать, чтобы избежать сжатия?
Как очистить UIStackView?

Код: Выделить всё

extension UIStackView {
func clear() {
arrangedSubviews.forEach { subview in
removeArrangedSubview(subview)
subview.removeFromSuperview()
}
}
}
Как определить подпредставления элемента UIStackView? Всего 3 подпредставления.

Код: Выделить всё

class VoteAnswerView: UIView {

init(title: String, info: String) {
super.init(frame: .zero)
setup()
titleLabel.text = title
infoPercentageLabel.text = info
}

func setup() {
addSubview(progressView)
progressView.snp.makeConstraints { maker in
maker.leading.trailing.equalToSuperview().inset(20)
maker.height.equalTo(6)
maker.bottom.equalToSuperview()
}
addSubview(titleLabel)
titleLabel.snp.makeConstraints { maker in
maker.leading.equalTo(progressView)
maker.top.equalTo(18)
maker.bottom.equalTo(progressView.snp.top).offset(-10)
}
addSubview(infoPercentageLabel)
infoPercentageLabel.snp.makeConstraints { maker in
maker.bottom.equalTo(titleLabel)
maker.leading.equalTo(titleLabel.snp.trailing).offset(10)
maker.trailing.equalTo(progressView)
}

titleLabel.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
titleLabel.setContentCompressionResistancePriority(.required, for: .vertical)
infoPercentageLabel.setContentCompressionResistancePriority(.required, for: .horizontal)
infoPercentageLabel.setContentHuggingPriority(.required, for: .horizontal)
}

}
let stackView = UIStackView()
// and when I need to update it, all I do is

stackView.clear()
//answers is just an array of data
answers.forEach { answer in
let view = VoteAnswerView(title: answer.title, info: answer.info)
stackView.addArrangedSubview(view)
}
и это не работает. Почему?

Подробнее здесь: https://stackoverflow.com/questions/783 ... istackview
Ответить

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

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

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

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

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