UILabel创建后总是零

时间:2016-12-16 07:29:15

标签: ios swift uiview uiviewcontroller xcode8

我有一个视图控制器,我想以编程方式添加UILabel。

class ViewControler: UIViewController {
    private weak var titleLabel: UILabel!

    override func loadView() {
        super.loadView()
        titleLabel = UILabel()
        print(titleLabel)
        self.view.addSubView(titleLabel)
    }
}

我不知道为什么但是当我执行print语句时,titleLabel总是为零。它与tableView或按钮相同。我正在使用Xcode 8和Swift 3.

1 个答案:

答案 0 :(得分:1)

nilweak var而来。删除weak即可。

private var titleLabel: UILabel!

最有可能的是,loadView()super.loadView()检测到其引用计数为零,因此将其删除。因此,创建UILabel不起作用。

也像@idan指出的那样,以编程方式创建UILabel或任何其他UI内容,最好使用initframe来指定位置。