8

3.5 インチと 4 インチの両方の Retina 画面の中央に表示されるように UIView を配置したいと考えています。これを行う最善の方法は何ですか?Autosizing バーをすべてオフにすると、バーが画面の中央に整列することが期待されますが、これは発生しないようです。

新しい Autolayout を使用できて満足していますが、これを行う方法もわかりません。

4

3 に答える 3

21

XIBの次の手順に従うと、ビューの正しいサイズ変更が得られるはずです。

  1. iOS4とのシームレスな互換性を得るには、まず上面図のサイズをRetina3.5サイズに設定します。

  2. 上面図のサイズパラメータを削除し、「なし」に設定します。これで、正しいサイズのメインビューが表示されますが、固定のセットサイズオプションはありません。

  3. [サイズインスペクター]タブの下の上面図に対して、すべての自動サイズ変更を垂直方向にオンにします。

  4. サブビューごとに、次の手順を実行します

    • ビューを選択して、[サイズインスペクター]タブに移動します
    • 配置を選択します(垂直方向に中央揃えまたは整列)
    • 中央に配置する場合は、[自動サイズ設定]ボックスの両方の配置マーカーを削除します。「スティッキー」にする場合は一方を選択し、親を埋める場合は両方を選択します。
    • 垂直方向の「二重矢印」を強調表示または非強調表示して、サイズを相対的に変更するかどうかを選択します
    • この時点で、すべての要素が3.5インチビューの目的の場所に配置されていることを確認してください。これは、iOS4で機能するために重要です。
  5. 変更を保存します。上面図を選択し、サイズを選択して、自動サイズ変更が成功したかどうかを確認します:「Retina4フルスクリーン」。これを行うとき、ビューは意図した結果のように見えるはずです。

  6. 5で変更を元に戻します(xibのビューのサイズが再び3.5になるようにしますが、[サイズ]オプションを[なし]に設定し、アプリを保存して実行します。

これはiOS4でも機能します。これは、ビューのサイズがすでにRetina 3.5に適合しているため、古い画面サイズには自動サイズ設定が使用されないためです。

場合によっては、すべての要素の正確なサイズ/位置を取得できないことがあります。このような場合、4インチの画面サイズのビューサイズの位置をプログラムで変更する必要があります。

于 2012-11-22T16:38:48.653 に答える
3

自動レイアウトを使用して、ビューをIBの親(コンテナ)ビューの中央に配置するには:

  • 表示するものを選択
  • メニューに移動し、[エディタ]->[整列]->[コンテナ内の水平/垂直中心]オプションを選択します

ただし、自動レイアウトを使用できるのは、iOS 6以降をサポートしている場合のみです。以前のバージョンのOSをターゲットにしている場合は、他のアプローチを使用する必要があります(たとえば、Ericが提案したコードでセンタリングビューを設定する)

于 2012-11-22T15:52:07.243 に答える
0

手動で(AutoLayoutなしで)行う方法は次のとおりです。

int screenWidth = [[UIScreen mainScreen] applicationFrame].size.height;
int screenHeight = [[UIScreen mainScreen] applicationFrame].size.width;

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0,0,100,200)];
[myView setCenter:CGPointMake(screenWidth/2, screenHeight/2)];

[self.view addSubview:myView];
于 2012-11-22T15:50:32.733 に答える