0

自動レイアウトは私には意味をなさないことをしていますが、うまくいけばあなたの一人に:

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 配置で突然問題が発生するのはなぜですか?

4

1 に答える 1