我有一个视图控制器,我想以编程方式添加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.
答案 0 :(得分:1)
nil
因weak
var而来。删除weak
即可。
private var titleLabel: UILabel!
最有可能的是,loadView()
和super.loadView()
检测到其引用计数为零,因此将其删除。因此,创建UILabel
不起作用。
也像@idan指出的那样,以编程方式创建UILabel
或任何其他UI内容,最好使用init
和frame
来指定位置。