iOS6から採用された。レウアウトの自動調整方法。

概要

二つのUIオブジェクト間の拘束の関係を表す。この関係は以下の式で書ける。
属性1 == 乗数 * 属性2 + 定数

1、2はオブジェクトの識別子で属性というのは例えばx方向の位置等である。
また、この式は>=のような不等号の場合もある。

属性には優先順位が付けられていて、複数の拘束条件のどれが優先されるかが決まる。

コンストラクタ

+ constraintsWithVisualFormat:options:metrics:views:

“Visual Format Language” を用いて拘束条件を生成する。
[button]-[textField]

+ constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:

属性1 == 乗数 * 属性2 + 定数
の関係式を使って拘束条件を生成する。つまり、
view1.attr1 <relation> multiplier * view2.attr2 + constant

itemのところにviewをattribute:にNSLayoutAttributeによる属性指定(NSLayoutAttributeWidthは幅)、relatedbyにはNSLayoutRelationで==や>=を指定する。


プロパティ

  1. constant
  2. firstAttribute
  3. firstItem
  4. multiplier
  5. relation
  6. secondAttribute
  7. secondItem
以上は属性1 == 乗数 * 属性2 + 定数を表している。
  1. priority
優先順位。NSLayoutPriorityで設定。
   UILayoutPriorityRequired = 1000,
  UILayoutPriorityDefaultHigh = 750,
  UILayoutPriorityDefaultLow = 250,
  UILayoutPriorityFittingSizeLevel = 50,
  1. shouldBeArchived
viewがarchiveされたときこの拘束もarchiveされるべきか。デフォルトはNO。



最終更新:2012年10月16日 10:30