AutoLayout (コードを使用) をいじっていたところ、よくわからないものにぶつかりました。問題を示すために簡単な例を作成しました。
- (void)viewDidLoad
{
[super viewDidLoad];
//create views
UIView *redView = [UIView new];
redView.backgroundColor = [UIColor redColor];
redView.translatesAutoresizingMaskIntoConstraints = NO;
UIView *blueView = [UIView new];
blueView.backgroundColor = [UIColor blueColor];
blueView.translatesAutoresizingMaskIntoConstraints = NO;
//add views to viewcontroller's view
[self.view addSubview:redView];
[self.view addSubview:blueView];
//add contraints
NSDictionary *views = NSDictionaryOfVariableBindings(redView, blueView);
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[redView]-|" options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[blueView]-|" options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[redView]-[blueView]-|" options:0 metrics:nil views:views]];
}
次の結果が期待されます: http://i.stack.imgur.com/LCWQP.png
しかし、代わりに次の結果が得られます: http://i.stack.imgur.com/DJK5i.png
今、私はそれを使用して解決できることを知っています[NSLayoutConstraint constraintWithItem: attribute: relatedBy: toItem: attribute: multiplier: constant: ]
が、VisualFormatオプションがあるのか 、それとも私のコードに何かが欠けているのか疑問に思っていました...
私の学習の旅の間、あなたの助けを前もってありがとう!