3.5 インチと 4 インチの両方の Retina 画面の中央に表示されるように UIView を配置したいと考えています。これを行う最善の方法は何ですか?Autosizing バーをすべてオフにすると、バーが画面の中央に整列することが期待されますが、これは発生しないようです。
新しい Autolayout を使用できて満足していますが、これを行う方法もわかりません。
3.5 インチと 4 インチの両方の Retina 画面の中央に表示されるように UIView を配置したいと考えています。これを行う最善の方法は何ですか?Autosizing バーをすべてオフにすると、バーが画面の中央に整列することが期待されますが、これは発生しないようです。
新しい Autolayout を使用できて満足していますが、これを行う方法もわかりません。
XIBの次の手順に従うと、ビューの正しいサイズ変更が得られるはずです。
iOS4とのシームレスな互換性を得るには、まず上面図のサイズをRetina3.5サイズに設定します。
上面図のサイズパラメータを削除し、「なし」に設定します。これで、正しいサイズのメインビューが表示されますが、固定のセットサイズオプションはありません。
[サイズインスペクター]タブの下の上面図に対して、すべての自動サイズ変更を垂直方向にオンにします。
サブビューごとに、次の手順を実行します
変更を保存します。上面図を選択し、サイズを選択して、自動サイズ変更が成功したかどうかを確認します:「Retina4フルスクリーン」。これを行うとき、ビューは意図した結果のように見えるはずです。
5で変更を元に戻します(xibのビューのサイズが再び3.5になるようにしますが、[サイズ]オプションを[なし]に設定し、アプリを保存して実行します。
これはiOS4でも機能します。これは、ビューのサイズがすでにRetina 3.5に適合しているため、古い画面サイズには自動サイズ設定が使用されないためです。
場合によっては、すべての要素の正確なサイズ/位置を取得できないことがあります。このような場合、4インチの画面サイズのビューサイズの位置をプログラムで変更する必要があります。
自動レイアウトを使用して、ビューをIBの親(コンテナ)ビューの中央に配置するには:
ただし、自動レイアウトを使用できるのは、iOS 6以降をサポートしている場合のみです。以前のバージョンのOSをターゲットにしている場合は、他のアプローチを使用する必要があります(たとえば、Ericが提案したコードでセンタリングビューを設定する)
手動で(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];