样板代码示例
override func viewDidLoad() { super.viewDidLoad() let myView = UIView() myView.backgroundColor= UIColor.blueColor() myView.translatesAutoresizingMaskIntoConstraints= false view.addSubview(myView) // 在此处添加约束代码 // ... }
在下面的示例中,“锚定样式”是“样式”的首选方法NSLayoutConstraint,但是仅在iOS 9中可用,因此,如果您支持iOS 8,则仍应使用“NSLayoutConstraint样式”。
锚样式
let margins = view.layoutMarginsGuide myView.leadingAnchor.constraintEqualToAnchor(margins.leadingAnchor, constant: 20).active = true
此外leadingAnchor,也有trailingAnchor,topAnchor和bottomAnchor。
NSLayout约束样式
NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.LeadingMargin, multiplier: 1.0, constant: 20.0).active = true
此外.Leading也有.Trailing,.Top和.Bottom。
此外.LeadingMargin也有.TrailingMargin,.TopMargin和.BottomMargin。
视觉格式语言样式
NSLayoutConstraint.constraintsWithVisualFormat("H:|-20-[myViewKey]", options: [], metrics: nil, views: ["myViewKey": myView])
锚样式
myView.widthAnchor.constraintEqualToAnchor(nil, constant: 200).active = true myView.heightAnchor.constraintEqualToAnchor(nil, constant: 100).active = true
NSLayout约束样式
NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 200).active = true NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1, constant: 100).active = true
视觉格式语言样式
NSLayoutConstraint.constraintsWithVisualFormat("H:[myViewKey(200)]", options: [], metrics: nil, views: ["myViewKey": myView]) NSLayoutConstraint.constraintsWithVisualFormat("V:[myViewKey(100)]", options: [], metrics: nil, views: ["myViewKey": myView])
锚样式
myView.centerXAnchor.constraintEqualToAnchor(view.centerXAnchor).active = true myView.centerYAnchor.constraintEqualToAnchor(view.centerYAnchor).active = true
NSLayout约束样式
NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0).active = true NSLayoutConstraint(item: myView, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0).active = true
视觉格式语言样式
NSLayoutConstraint.constraintsWithVisualFormat("V:[viewKey]-(<=0)-[myViewKey]", options: NSLayoutFormatOptions.AlignAllCenterX, metrics: nil, views: ["myViewKey": myView, "viewKey": view]) NSLayoutConstraint.constraintsWithVisualFormat("H:[viewKey]-(<=0)-[myViewKey]", options: NSLayoutFormatOptions.AlignAllCenterY, metrics: nil, views: ["myViewKey": myView, "viewKey": view])