5

自動レイアウト制約が間違ったアンカーポイントにスナップすることがあります。たとえば、コントロールをその上のコントロールに固定したい場合や、自動レイアウト制約がウィンドウの下部に固定される場合などです。制約を移動する方法はありますか?アスキーアートはこれをより明確にするはずです。これは私が持っているものです:

+------------------------+
|                        |
| [x] Some checkbox      |
|                        |
| [x] Another checkbox   |
|     |                  |
|     | ← autolayout     |
|     |   constraint     |
|     |                  |
+-----+------------------+

そして、これは私が代わりに欲しいものです:

+------------------------+
|                        |
| [x] Some checkbox      |
|     | ← A.C.           |
| [x] Another checkbox   |
|                        |
|                        |
|                        |
|                        |
+------------------------+

下のチェックボックスを上に移動することで、制約を上のチェックボックスに固定できますが、それは私が望んでいることではありません。垂直方向のスペースを大きくしたいのです。(チェックボックスは単なる説明のためのものであり、私の実際のユースケースではさまざまなビューがあります。)

4

3 に答える 3

7
  1. 2つのチェックボックスを選択します
  2. InterfaceBuilderの右下にある「H」アイコンをクリックします
  3. 垂直間隔を選択

ここに画像の説明を入力してください


次に、役に立たない制約を選択して削除します。

ここに画像の説明を入力してください

于 2012-10-05T14:16:49.233 に答える
1

下のチェックボックスを動かして、それ自体と上のチェックボックスの間に支柱ができるようにします。次に、支柱をクリックして、右側のパネルの属性ボックスをクリックします。そこで、「標準」ボックスのチェックを外して、希望の間隔に設定できるはずです。

于 2012-07-30T19:04:48.997 に答える
1

いいえ、制約を移動したり、別のビューを基準にするように変更したりすることはできません。David Chuが言うように、必要な種類の制約が自動的に取得されるまでビューを移動してから、制約の値を変更してビューを目的の場所に戻すことができます。ただし、必要な制約を手動で作成してから、必要のない自動制約を削除することもできます(場合によっては問題が発生します)。ケースの方法は次のとおりです。

2つのチェックボックスを選択し、[エディター]>[ピン]>[垂直間隔]メニューを使用して必要な制約を追加します(または、IBレイアウトビューの右下にある3つのボタンの中央を使用して同じメニューを表示します)。その時点で、不要な自動制約が冗長になり、紫から青に切り替わるはずです。その後、それを選択して削除できます。それぞれの種類の制約は、それらの[ピン留め]メニューと[整列]メニューの項目を使用して作成できます。

Xcodeが追加する自動制約との戦い、そして時にはそれらが紫から青にシフトしない理由を見つけるためのパズルがありますが、あなたが望む制約を取得することは常に可能であることがわかりました。たとえば、カスタム制約を追加した後にビューを直接移動すると、ウィンドウ内の他の一見ランダムなビューだけでなく、Xcodeが追加した制約のほとんどを削除し、自動制約を再追加したことがわかります。感動しました!幸運を。

于 2012-08-28T18:28:22.377 に答える