iOS6 では、オートレイアウトを使用しています。
- プログラムで作成された 2 つのビュー v1 と v2 があります。
- v2 はサブビューとして v1 に追加されます
- v1 の制約は、プログラムによって既に作成されています (ここには示されていません)。
- v1 と v2 を同じサイズにし、v2 を v1 の上に配置して、v2 が v1 の上に正確に重なるように、水平方向と垂直方向の中心が一致するようにします。
質問:
- どうすればこれを達成できますか (できれば視覚的な形式を使用してください。それが不可能な場合は、別のアプローチを提案できます)?
コード- 以下は私の試みですが、目的の出力が得られません。- エラーはスローされません。V1 は正しく配置されていますが、V2 は V1 の左隅にあります
注 - 以下のコメントで、私がやろうとしていることを説明しました。
[v1 addSubView:v2];
v1.translatesAutoresizingMaskIntoConstraints = NO;
v2.translatesAutoresizingMaskIntoConstraints = NO;
NSDictionary *viewDictionary = NSDictionaryOfVariableBindings(v1,
v2);
//I wanted v1 and v2 to be of the same height and wanted the center Y to be aligned together
NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:[v2(==v1)]"
options:NSLayoutFormatAlignAllCenterY
metrics:nil
views:viewDictionary];
//I wanted v1 and v2 to be of the same height and wanted the center X to be aligned together
NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[v2(==v1)]"
options:NSLayoutFormatAlignAllCenterX
metrics:nil
views:viewDictionary];
[v1 addConstraints:horizontalConstraints];
[v1 addConstraints:verticalConstraints];