Swift UITextField 约束 - 在视图中间添加文本字段

Swift UITextField Constraint - Add Textfield in Middle of the View

我想以编程方式将 UITextField 添加到我的视图。 左右距离应为 20。 与顶部的距离应为 100。

如果我在设计器中添加约束,它会起作用: -> 在模拟器中它看起来像这样:

我现在的代码:

let EmailTextfield = UITextField()
override func loadView() {        
    super.loadView()

    EmailTextfield.translatesAutoresizingMaskIntoConstraints = false
    EmailTextfield.layer.borderWidth = 2
    EmailTextfield.layer.borderColor = UIColor.blackColor().CGColor

    EmailTextfield.addConstraint(
    NSLayoutConstraint(
        item: EmailTextfield,
        attribute: NSLayoutAttribute.Height,
        relatedBy: NSLayoutRelation.Equal,
        toItem: nil,
        attribute: NSLayoutAttribute.NotAnAttribute,
        multiplier: 1.0,
        constant: 40
    ))

    //left
    self.view.addConstraint(
    NSLayoutConstraint(
        item: EmailTextfield,
        attribute: NSLayoutAttribute.Leading,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.view,
        attribute: NSLayoutAttribute.Leading,
        multiplier: 1.0,
        constant: 20
    ))

    //right
    self.view.addConstraint(
    NSLayoutConstraint(
        item: EmailTextfield,
        attribute: NSLayoutAttribute.Trailing,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.view,
        attribute: NSLayoutAttribute.Trailing,
        multiplier: 1.0,
        constant: 20
    ))

    //top
    self.view.addConstraint(
    NSLayoutConstraint(
        item: EmailTextfield,
        attribute: NSLayoutAttribute.Top,
        relatedBy: NSLayoutRelation.Equal,
        toItem: self.view,
        attribute: NSLayoutAttribute.Top,
        multiplier: 1.0,
        constant: 100
    ))
)

当我 运行 我的代码:

我的错误是什么?

您可以将 RIGHT 约束常量从 20 更改为 -20。或者您可以切换 RIGHT 约束项(项目:self.view,toItem:EmailTextfield)并将常量保留为 20.

尾随常数必须是负值 -20 而不是 20。