NSLayoutConstraint 快速
Posted
技术标签:
【中文标题】NSLayoutConstraint 快速【英文标题】:NSLayoutConstraint in swift 【发布时间】:2014-08-23 09:17:01 【问题描述】:我正在尝试将以下代码转换为 Swift:
leftConstraint = [NSLayoutConstraint constraintWithItem:self.contentView
attribute:NSLayoutAttributeLeft
relatedBy:0
toItem:self.view
attribute:NSLayoutAttributeLeft
multiplier:1.0
constant:0];
[self.view addConstraint:leftConstraint];
谁能给我新的语法在 Swift 中做这件事?
【问题讨论】:
【参考方案1】:从documentation复制粘贴:
convenience init(item view1: AnyObject!,
attribute attr1: NSLayoutAttribute,
relatedBy relation: NSLayoutRelation,
toItem view2: AnyObject!,
attribute attr2: NSLayoutAttribute,
multiplier multiplier: CGFloat,
constant c: CGFloat)
所以你的代码翻译成
let leftConstraint = NSLayoutConstraint(item: self.contentView,
attribute: .left,
relatedBy: .equal,
toItem: self.view,
attribute: .left,
multiplier: 1.0,
constant: 0.0);
self.view.addConstraint(leftConstraint);
为 Swift 4 更新了代码。
【讨论】:
NotrelatedBy:0,现在是relatedBy:.Equal,【参考方案2】:试试这个:
var leftConstrains:NSLayoutConstraint = NSLayoutConstraint(item: self.contentView, attribute: NSLayoutAttribute.Left, relatedBy: NSLayoutRelation.Equal, toItem: self.contentView, attribute: NSLayoutAttribute.Left, multiplier: 1, constant: 0)
self.contentView.addConstraint(leftConstrains)
【讨论】:
以上是关于NSLayoutConstraint 快速的主要内容,如果未能解决你的问题,请参考以下文章