【问题标题】:UILabel is always nil after creating [duplicate]创建后 UILabel 始终为 nil [重复]
【发布时间】:2016-12-16 07:29:14
【问题描述】:

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

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

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

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

【问题讨论】:

  • 是 nil 还是看不到?您没有向其中添加任何文本...
  • titleLabel.translatesAutoresizingMaskIntoConstraints = false

标签: ios swift uiview uiviewcontroller xcode8


【解决方案1】:

nil,因为这里有weak var。删除weak,它将起作用。

private var titleLabel: UILabel!

很可能,在loadView()super.loadView() 上,它检测到其引用计数为零,因此将其删除。所以在那里创建一个UILabel 是行不通的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多