間の制約を確立するために、iOSの自動レイアウトを使用して、私は、サブビューとして、子View Controllerのビューを追加している:私のルートビューコントローラ内の子ビューコントローラとその親ビュー
ChildViewController *cvc = [[ChildViewController alloc] init];
[self addChildViewController:cvc];
[self.view addSubview:cvc.view];
[cvc didMoveToParentViewController:self];
とI NSLayoutConstraintを使用して親ビュー(self.view)内でcvc.viewを配置することができ、cvc.viewが親ビューの下側に25ポイント上に位置するようになりました。私の理解では、次のことがうまくいくはずです:
UIView *superview = self.view;
UIView *childview = cvc.view;
NSLayoutConstraint *cn =
[NSLayoutConstraint withItem:childview
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:superview attribute:NSLayoutAttributeBottom
multiplier: 1.0
constant: -25.0];
[superview addConstraint: cn];
実行時に制約が失敗します。最初は、子ビューの自動サイズ変更マスクが問題を引き起こしていた可能性があります(そして自動レイアウトのWWDC 2012のイントロビデオに従う)ので、[childview setTranslatesAutoresizingMaskIntoConstraints:NO]
を設定しましたが、子ビューは表示されません。
私は間違っていますか?