自動レイアウトは私には意味をなさないことをしていますが、うまくいけばあなたの一人に:
UIView containerView と 5 つの UIViews coverview1-coverview5 があります。|[ __ ][ __ ][ __ ][ __ ][ __ ]| のように、これらの 5 つのカバービューを containerView で隣り合わせに配置します。
だから私はやっている:
[coverviewContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:
@"H:|[coverview1(>=0)][coverview2(==coverview1)][coverview3(==coverview1)][coverview4(==coverview1)][coverview5(==coverview1)]|" options:NSLayoutFormatAlignAllBottom metrics:nil views:viewsDictionary]];
そして私は得る:
Unable to simultaneously satisfy constraints.
(
"<NSLayoutConstraint:0x1d5ae4f0 ItemView:0x1d58f6f0.centerX == ItemView:0x1d580410.centerX>",
"<NSLayoutConstraint:0x1d5ae470 ItemView:0x1d58f6f0.centerX == ItemView:0x1d59b480.centerX>",
"<NSLayoutConstraint:0x1d5aed70 ItemView:0x1d580410.centerX == ItemView:0x1d59b480.centerX>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x1d5ae470 ItemView:0x1d58f6f0.centerX == ItemView:0x1d59b480.centerX>
奇妙なことに、次のいずれかを実行すると警告が表示されません。
[coverviewContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:
@"H:|[coverview1(>=0)]|" options:NSLayoutFormatAlignAllBottom metrics:nil views:viewsDictionary]];
//or
[coverviewContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:
@"H:|[coverview1(>=0)][coverview2(==coverview1)]|" options:NSLayoutFormatAlignAllBottom metrics:nil views:viewsDictionary]];
//or
[coverviewContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:
@"H:|[coverview1(>=0)][coverview2(==coverview1)][coverview3(==coverview1)]|" options:NSLayoutFormatAlignAllBottom metrics:nil views:viewsDictionary]];
//or
[coverviewContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:
@"H:|[coverview1(>=0)][coverview2(==coverview1)][coverview3(==coverview1)][coverview4(==coverview1)]|" options:NSLayoutFormatAlignAllBottom metrics:nil views:viewsDictionary]];
//or
[coverviewContainer addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:
@"H:|[coverview1(>=0)][coverview2(==coverview1)][coverview3(==coverview1)][coverview5(==coverview1)]|" options:NSLayoutFormatAlignAllBottom metrics:nil views:viewsDictionary]];
(coverview4 を coverview5 に置き換えたため、最後の 2 つは同じではありません)
最大 4 つのビューしか追加できないのはなぜですか? 5 番目のものを追加すると、ビューの centerX 配置で突然問題が発生するのはなぜですか?