コードでNSLayoutConstraintを設定するときは、
let oldTrailingSpaceArray = self.contentView.constraints().filter({(includeElement: AnyObject) -> Bool in if let secondItem = includeElement.secondItem as? UIView{ return secondItem == self.contentView && includeElement.firstAttribute == NSLayoutAttribute.Trailing && includeElement.relation == NSLayoutRelation.Equal; } return false; }) if oldTrailingSpaceArray.count != 0 ,let oldTrailingSpace = oldTrailingSpaceArray[0] as? NSLayoutConstraint{ self.contentView.removeConstraint(oldTrailingSpace) } let newTrailingSpace=NSLayoutConstraint(item: self.preferredView, attribute: .Trailing, relatedBy: .Equal, toItem: self.contentView, attribute: .TrailingMargin , multiplier: 1.0, constant: margin) self.contentView.addConstraint(newTrailingSpace)
のような記述をしますが、itemやtoItemの適切な設定値を調べるのは大変です。
一回StoryboardでConstraintを追加して、追加されたのがどのViewのConstraintかを確認したあと、
var test2 = self.contentView.constraints()[1];//確認したViewのconstraintを取得 var hoge = test2.firstItem; //contentView var hoge2 = test2.firstAttribute; //Trailing var fuga = test2.relation; //Equal var foo = test2.secondItem; //preferredView var foo2 = test3.secondAttribute; //TrailingMargin
のようなコードを書いて、設定値を確認するようにすると、リファレンスなどを読んで調べる手間が省けます。