2

インターフェイスビルダーで次の自動レイアウトを作成しようとしています:

ビューの上部:

  • デバイスの幅に合わせた画像ビュー
  • 画像ビューは正方形です(高さもデバイスの幅と同じです)

画像ビューの下の残りのスペースを埋める:

  • 同じ高さの 3 つのボタン
  • 一緒に、上部の正方形の下の残りのスペースを埋めます

これは IB だけで行うことはできますか?

-スコット

4

2 に答える 2

4

インターフェイスビルダーで関係の制約を表現できないため、できません。

画像ビューの高さを除いて、他のすべてを行うことができます (ほとんど、編集を参照)。ビューに一定の高さの制約を設定し (おそらく iPhone 画面の幅に設定)、そこへのアウトレットを作成できます。

実行時に、iPad で実行している場合 (説明は横向きでは意味がないため、縦向きと横向きではなく iPad と iPhone の間で動作することが要件であると想定しています)、この制約を削除し、新しい固定を追加します。画像ビューの高さを幅と同じにします。

残りの制約を設定する方法は次のとおりです。メイン ビュー アウトレットだけを含むビュー コントローラーから始めていると仮定しています。

  1. 画像ビューでドラッグすると、デフォルトで画面全体に表示されます。
  2. 固定メニューを使用して、画像ビューの高さを 320 に固定します (その後、作成された制約を編集します)。これは、アウトレットを作成する制約です。
  3. 3 つのボタンをドラッグします。
  4. それらをすべて選択し、高さを均等に固定します
  5. 一番下のボタンを選択し、固定メニューを使用して、一番下のスペースをスーパービューに固定します
  6. その制約を選択し、[標準] チェック ボックスをオンにします。これにより、残りのスペースを埋めるために 3 つのボタンが拡張されます (さらに少しのスペース)。
  7. 3 つのボタンすべてを選択し、幅を均等に固定します
  8. 1 つのボタンを選択し、末尾のスペースをスーパービューに固定します。前と同じように、この制約を選択し、[標準] チェックボックスをオンにします。ボタンはビューの幅いっぱいに拡大されます。

次のように表示します。ここに画像の説明を入力

なんらかの理由で、IB はボタンの 1 つに高さの制限を追加しましたが、私には削除させませんでした。同じ高さの 3 つのボタンを用意し、画像ビューの間隔と高さに基づいて実行時に各ボタンの高さを導き出すのは、好ましくありませんでした。実行時にその制約を削除する必要がある場合もあります。または、これを一緒にバッシングしているときに何かを見逃した可能性があります。いずれにしても、上記の原則がお役に立てば幸いです。

于 2013-01-14T20:08:29.263 に答える
0

二乗するUIImageViewには、制約トラフ コードを作成する必要があります。他のすべての要件は IB でカバーできると思いますが、個人的にはコーディングで作成することをお勧めします。

幸運を。

于 2013-01-14T20:11:34.800 に答える