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。
我想以编程方式将 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。