程序化UITextField在viewDidLoad上不可见

时间:2018-12-05 07:03:44

标签: swift uitextfield

我正在尝试以编程方式创建UITextField,但是它没有出现在视图中。

我相信我已经正确设置了约束,所有约束都应在viewDidLoad上激活。我确定我错过了一些明显的事情,但是因为我的一生无法理解什么。

class HomeController: UIViewController {

    let textField: UITextField = {
        let input = UITextField()
        input.translatesAutoresizingMaskIntoConstraints = false
        return input
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .purple

        view.addSubview(textField)
        NSLayoutConstraint.activate([
            textField.centerXAnchor.constraint(equalTo: view.centerXAnchor),
            textField.centerYAnchor.constraint(equalTo: view.centerYAnchor),
            textField.widthAnchor.constraint(equalToConstant: 300),
            textField.heightAnchor.constraint(equalToConstant: 40)
        ])

    }
}

1 个答案:

答案 0 :(得分:4)

设置背景属性,它将显示。

  let textField:UITextField = {
    让输入= UITextField()
    input.backgroundColor = UIColor.white
    input.translatesAutoresizingMaskIntoConstraints = false
    返回输入
}()