[img]https://i.stack.imgur. com/lwsCCl.jpg[/img]
В какой-то момент мне нужно его обновить, поэтому я просто удаляю все подпредставления из UIStackView и добавляю их снова с обновленными данными. Почему тогда оно уменьшено?

Что делать, чтобы избежать сжатия?
Как очистить UIStackView?
Код: Выделить всё
extension UIStackView {
func clear() {
arrangedSubviews.forEach { subview in
removeArrangedSubview(subview)
subview.removeFromSuperview()
}
}
}
Код: Выделить всё
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
Мобильная версия