什么会导致UIStackView子视图崩溃?

时间:2019-07-09 10:25:21

标签: uikit swift-playground uistackview

我正在以编程方式构建一个垂直的UIStackView以显示3个简短的UILabel:

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 Playground开发这种视图。

0 个答案:

没有答案