3

私はiPhoneアプリで作業しており、xcodeは比較的新しいです。どのデバイスを使用しても、メインのUIが中央になるようにアプリケーションを設計しようとしています。すべてのコントロール(テキストフィールド、送信ボタン)を含むuiviewがあります。私はこのuiviewを、iPhone5のシミュレートされたメトリックに基づくインターフェイスビルダーを中心にしています。これをiPhone4以下でテストすると、当然、このuiviewは中央に配置されず、画面の下部に向かって表示されます。デバイスに基づいてこのuiviewオートセンターを使用する簡単な方法はありますか?これをプログラムで追加する必要がありますか?

助けてくれる人に感謝します!

iPhone3.5インチ= http:
//bit.ly/14r6R6UiPhone4 インチ= http: //bit.ly/WOyQcn

4

6 に答える 6

4

インターフェイスビルダーで自動サイズ変更オプションを使用できます。上マージンと下マージンを固定し、柔軟な高さを設定する

于 2013-01-30T04:15:55.200 に答える
1

Xcode 4.5 以降を使用している場合は、iPhone 3.5 インチと iPhone 4 インチの 2 つの異なる xib を次のように作成できます。ここに画像の説明を入力

これにより、すべてのビュー コンポーネントの保守が容易になります。

于 2013-01-30T04:19:50.293 に答える
0

自動レイアウトをオンにしている場合(デフォルトでは)、ビューを水平方向と垂直方向の両方の中央に配置し、高さと幅を固定する必要があります。これらを取得すると、他の制約を削除できるようになります。これにより、縦向きと横向きの任意のサイズの画面の中央に配置されます。

于 2013-01-30T04:32:50.500 に答える
0

あなたはこれらのことを探求する必要があります:

古い方法-マスクの自動サイズ設定

新しい方法-自動レイアウト
これは、新しいプロジェクトではデフォルトで有効になっています。ストーリーボードのファイルインスペクターのチェックボックスをオフにすると、オフにできます。自動レイアウトはios6のみです。自動サイズ設定はios6、5、4で機能します...

これらは両方とも、コードを必要としないレイアウトエンジンを提供します。どちらの方法でも、サイズインスペクターを使用してストーリーボード内のオブジェクトの設定を変更します。

自動レイアウトはAppleが強く推奨する方法ですが、最初に自動サイズ変更マスクを試すことをお勧めします。自動レイアウトを使用すると、オブジェクトの相対的な配置をはるかに細かく制御できますが、複雑さが大幅に増します。自動サイズ設定を使用して結果を達成できる場合は、実行してください。

Raywenderlich.comには、両方の優れたガイドがあります。

于 2013-01-30T04:45:42.583 に答える
0

最初にサイズが (320,480) の baseView を作成し、そのビューを baseview のサブビューとして追加します。

その後、このようにしてください、

CGRect _baseFrame=baseView.frame;
    _baseFrame.origin=CGPointMake((self.view.frame.size.width-baseView.frame.size.width)/2, (self.view.frame.size.height-baseView.frame.size.height)/2);
    baseView.frame=_baseFrame;
于 2013-01-30T04:16:10.937 に答える
0

ビューコントローラーで定義します

#define STATUSBAR_HEIGHT 20

#define SCREEN_HEIGHT (( double )[ [ UIScreen mainScreen ] bounds ].size.height - STATUSBAR_HEIGHT)

#define SCREEN_WIDTH (( double )[ [ UIScreen mainScreen ] bounds ].size.width)

そして例えば

UIView *view = [[UIView alloc]init];
[view setBackgroundColor:[UIColor purpleColor]];

//for example view height 100 and width 100 then

float xAxis = (SCREEN_WIDTH - 100)/2;
float yAxis = (SCREEN_HEIGHT - 100)/2;


[view setFrame:CGRectMake(xAxis, yAxis, 100, 100)];
[self.view addSubview:view];

また、xib でビューを作成する場合は、これを使用する必要があります

ここに画像の説明を入力

于 2013-01-30T05:45:40.993 に答える