如果未调用sizeToFit
,则标签不可见。这是为什么?
class RootViewController: UIViewController {
override func loadView() {
let v = UIView()
v.backgroundColor = .green
self.view = v
let label = UILabel()
v.addSubview(label)
label.text = "Hello, World!"
label.autoresizingMask = [
.flexibleTopMargin,
.flexibleLeftMargin,
.flexibleBottomMargin,
.flexibleRightMargin]
label.sizeToFit()
label.center = CGPoint(v.bounds.midX, v.bounds.midY)
label.frame = label.frame.integral
}
}
答案 0 :(得分:0)
UIView()
与UIView(frame: CGRect.zero)
相同。因此,标签的默认大小为零。您正在使用手动布局,这意味着系统不会自动调整您的标签大小。因此,无论你分配给它的大小是它的大小。除了对sizeToFit()
的调用之外,您的代码不会在任何位置指定大小。因此,如果您不致电sizeToFit()
,您的标签将保留您创建的零尺寸。 sizeToFit()
更改其大小以适合其内容,因此您实际上可以看到它。