Что может вызвать разрушение подпредставлений UIStackView? - PullRequest
0 голосов
/ 09 июля 2019

Я программно строю вертикальный UIStackView, чтобы показать 3 коротких UILabel's:

import UIKit
import PlaygroundSupport

let box = UIView(frame: CGRect(origin: CGPoint(x:0, y:0), size: CGSize(width: 100, height: 100)))
box.backgroundColor = .white

let labels: [UILabel] = (1...3).map{ index in
   let label = UILabel()
   label.text = "item \(index)"
   return label
}

let sv = UIStackView(arrangedSubviews: labels)
sv.axis = .vertical
sv.alignment = .center
sv.translatesAutoresizingMaskIntoConstraints = false

box.addSubview(sv)

sv.centerXAnchor.constraint(equalTo: box.centerXAnchor).isActive = true
sv.centerYAnchor.constraint(equalTo: box.centerYAnchor).isActive = true

// performing this font change on a single item collapses the stack view
if let label = sv.subviews[1] as? UILabel {
    label.font = UIFont.italicSystemFont(ofSize: UIFont.labelFontSize)
}

PlaygroundPage.current.liveView = box

Выполнение изменения шрифта одной метки из стека, как показано выше, заставляет метки сворачиваться друг в друга, превращаясь в нечитаемыекапля букв:

Вместо

enter image description here

Я получаю

enter image description here

Мне не хватает каких-то базовых обязательных ограничений?

Следует отметить, что я использую игровую площадку Xcode 10.2.1 для разработки этого представления.

...