iOSのAuto Layout Visual Formatでセンタリングを行う

iOSのAuto LayoutでVisual Formatを使ってサブビューのセンタリングを行うには以下のように記述する。

1
2
[superview addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[superview]-(<=0)-[subview(length)]" options:NSLayoutFormatAlignAllCenterY metrics:NSDictionaryOfVariableBindings(length) views:NSDictionaryOfVariableBindings(superview, subview)]];
[superview addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[superview]-(<=0)-[subview(length)]" options:NSLayoutFormatAlignAllCenterX metrics:NSDictionaryOfVariableBindings(length) views:NSDictionaryOfVariableBindings(superview, subview)]];

上記コードではlengthを指定して正方形にレイアウトしているが、他で長さを指定していればlengthは指定しなくてもいい。