web-dev-qa-db-ja.com

末尾の制約にエラーがありません

Xcodeに次のエラーが表示され、解決できないようです。

末尾の制約がないため、他のビューと重複する可能性があります。

末尾の制約を追加して、「等しい」および「以上」の設定を修正しようとしましたが、どちらもエラーを解消しました。

「Reset to Suggested Constraints」と「Update Constraint Constants」も使用しましたが、やはりうまくいきませんでした。

私はビューコントローラーのすべてのアイテムを修正できますが、常にこのエラーで終了しますが、それはアイテムのいずれかであり、さらに混乱させる特定のアイテムではない可能性があります。

添付の画像をご覧ください。

できる限りわかりやすくするよう努めましたが、見落としがあった場合はお詫び申し上げます。

このエラーを修正する方法を誰かにアドバイスできますか?

enter image description here

9
user1747021

左側のラベルが右側のスイッチと交差する可能性があることを示しています。ラベルに、スイッチからの距離を示す制約を与える必要があります。

ラベルの幅/設定距離を可変にすることができます。スイッチから右拘束を設定します。または、ラベルをクリックしてスイッチからの幅/可変距離を設定し、スイッチから適切な制約を与えてから、制約をクリックして関係設定を変更することにより、その制約をある値以下にすることもできます。

別のオプションは、すべてのラベルを末尾の制約に揃えることで、1つのラベルにスイッチへの制約方法を指示するだけで、他のラベルが従うようになります。

編集:別のオプションは、ラベルと対応するスイッチの両方をスタックビューに追加することです。両方を選択し、[拘束を整列]ボタンの左側にあるボタンをクリックします。次に、スタックビューを水平方向に位置合わせし、スタックビューに左、右、および上または下のいずれかの制約を設定します。これにより修正されます。 (これはおそらく私が自分で行うことです)。

StackViewの例:

StackViewExample

ご覧のように、強調表示されたボタンをクリックすると、子ビューを保持するスタックビューが作成されます。

距離の設定と後続の整列の例:

enter image description here

6
Cameron Porter

このタイプの制約の素晴らしい回避策(単にそれらを非表示にしたい場合)は、欠落している制約を作成し(リーディングエッジまたはトレーリングエッジ)、次にその関係と定数を編集して「0以上」にします。これにより、ビューがめちゃくちゃにならず、警告が消えることを確認できます。

この例では、GPSログアウトに後続の制約がありません。

enter image description here

不足している制約を推奨値で追加します。

enter image description here

警告は消えますが、この制約が画面サイズに関係なくビューに影響を与えないようにするために、定数と0以上の関係を編集できます。

enter image description here

5
Bartosz Kunat