【问题标题】:Why does label need sizeToFit?为什么标签需要 sizeToFit?
【发布时间】:2018-01-23 16:25:33
【问题描述】:

如果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
    }

}

【问题讨论】:

    标签: uikit autoresizingmask


    【解决方案1】:

    UIView()UIView(frame: CGRect.zero) 相同。所以标签的默认大小为零。您正在使用手动布局,这意味着系统不会自动调整标签大小。因此,您分配给它的任何大小都是它将具有的大小。除了对sizeToFit() 的调用之外,您的代码没有在任何地方分配大小。因此,如果您不调用sizeToFit(),您的标签将保留您创建它时使用的零大小。 sizeToFit() 更改其大小以适应其内容,因此您可以实际看到它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多