2

ストーリーボードにレイアウトされた比較的単純な縦向きのみの UI があり、アイテムを垂直方向に広げて 3.5 インチと 4 インチの両方の画面を埋めます。

つまり、画面のフォーム ファクターに関係なく、UI が画面全体にうまく収まるように、コントロール間の間隔を調整する必要があります。

これは珍しいことではないように思えますが、Interface Builder (Xcode 5 内) に適切な制約を追加することはできません。さまざまな画面サイズに合わせて調整されません。

プログラムによるUI構築に頼らずにこれを行う方法を知っている人はいますか? ストーリーボード ベースの UI を適切なものにするために多大な努力を払いました。

このソリューションは、iOS 6 と 7 の両方で動作する必要があります。ありがとう!

4

2 に答える 2

4

これを行う方法は、画面サイズが変更されたときにどのような調整が必要かによって異なります。一番上と一番下のビューに、それぞれスーパービューの一番上と一番下に垂直方向の間隔の制約を与える方法の 1 つです。ビューを追加します。私は通常、垂直に積み重ねたすべてのビューの間にテキストのない UILabel を使用し、互いに同じ高さを与えます。これらの「スペーサー」ビューの 1 つに固定の高さを与えますが、優先度が 1000 未満になるように編集します (これは、満たされることが必須ではないことを意味します)。次に、各「実際の」ビューの上下の各最近傍と「スペーサー」の間に間隔の制約を追加して、上から下までのすべてのビューが垂直方向の間隔の制約によって互いに接続されるようにします。画面サイズが変わると、変更できるのは「スペーサー」の高さだけです。これは、優先度が 1000 未満であり、他のすべての制約が必須であるためです。私の制約は次のようになります。

ここに画像の説明を入力

各ラベルには、その上下の「実際の」ビューに対して標準 (8 ポイント) の間隔があります。上部ビューと下部ビューには、画面の端までの間隔が必要です。

于 2013-11-15T07:14:21.377 に答える
0

Apple は、この問題を解決するための公式に承認されたアプローチを説明するドキュメントを投稿しました。

https://developer.apple.com/library/ios/documentation/userexperience/Conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html#//apple_ref/doc/uid/TP40010853-CH5-SW8

アプローチの概要: 幅/高さ (該当する場合) が等しいコントロール間にスペーサー ビューを挿入します。

于 2014-12-04T16:09:52.460 に答える