2

コンテナ ビューを機能させようとしています。問題は、乗数を 0.5 以外の何かに変更すると、次のようになります。

制約を同時に満たすことができません。

たとえば、*c2 multipier を 0.4 に、*c8 を 0.6 に変更すると、上記のエラーが発生します。しかし、0.5 に戻せば問題ありません。ここで何が間違っていますか?さらにいくつかの制約がありますが、それらは垂直方向のレイアウト用であるため、問題ではないと思います。

 NSLayoutConstraint *c1 = [NSLayoutConstraint constraintWithItem: contentView
                                                      attribute: NSLayoutAttributeLeft
                                                      relatedBy: NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeLeft
                                                     multiplier:1.0
                                                       constant:0.0];


NSLayoutConstraint *c2 = [NSLayoutConstraint constraintWithItem: contentView
                                                      attribute: NSLayoutAttributeWidth
                                                      relatedBy: NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeWidth
                                                     multiplier:.4
                                                       constant:0.0];


// detailView

NSLayoutConstraint *c7 = [NSLayoutConstraint constraintWithItem: detailView
                                                      attribute: NSLayoutAttributeRight
                                                      relatedBy: NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeRight
                                                     multiplier:1.0
                                                       constant:0.0];


NSLayoutConstraint *c8 = [NSLayoutConstraint constraintWithItem: detailView
                                                      attribute: NSLayoutAttributeWidth
                                                      relatedBy: NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeWidth
                                                     multiplier:.6
                                                       constant:0.0];
4

2 に答える 2

2

relatedBy:NSLayoutRelationGreaterThanOrEqual を使用して成功しました。

例:

        [self.view addConstraint:

             [

              NSLayoutConstraint

              constraintWithItem: _accountRegisteredDateLabel
              attribute:NSLayoutAttributeWidth
              relatedBy:NSLayoutRelationGreaterThanOrEqual
              toItem:self.view
              attribute:NSLayoutAttributeWidth
              multiplier:.30
              constant:0


              ]

         ];
于 2014-08-04T16:45:37.007 に答える
0

私は自分自身の質問に答えようと思いました。私は最終的に 1 つのビュー乗数を 0.609375 に、もう 1 つを 0.390625 に設定しました。

0.4 と 0.6 で失敗したのは、合計スペースが足りなかったからです。私の2つのビューは、合計1024px(iPad)のスペースで隣り合っていました。

0.4 * 1024 = 409,6

0.6 * 1024 = 614,4

私の理解では、どういうわけかconstraintWithItemメソッドは残りを気にせず、エラーをスローします。

余りが出ない数を考えてみてください

0.390625 * 1024 = 400

0.609375 * 1024 = 624

于 2013-01-26T00:55:07.863 に答える