Покажите что у вас в
cell.configure(step)
(upd)
"Помучил" ваш код немного. Мдааа... очччень интересная ситуация вырисовалась. Часа два проваландался.
Оказывается, что даже если удалять прогрессбары из стэквьюхи, а затем добавлять - все равно не меняется их размер.
Но, именно такое решение я и нашел - удалять из стэквьюхи все. Просто, я добавлял в не правильном месте.
Короче. Ваш код хорош, просто добавьте
arrangedSubviews.forEach { $0.removeFromSuperview() }
первой строчкой в вашем методе
setValues
(upd2)
Подумал тут утром, и понял, что лучше чтоб логика была в одном методе, а не разбросанная по нескольким, поэтому, я бы сделал так:
- убрал из
CustomStackView override func layoutSubviews()
- переписал
setValues
следующим образом:
func setValues(_ walkValue: Double, _ aerobicValue: Double, _ runValue: Double) {
arrangedSubviews.forEach { $0.removeFromSuperview() }
setNeedsLayout()
layoutIfNeeded()
walk.proportion = walkValue
aerobic.proportion = aerobicValue
run.proportion = runValue
addArrangedSubview(walk)
addArrangedSubview(aerobic)
addArrangedSubview(run)
}
...у меня работает.