2

単一ビューのテスト アプリを作成し、メイン ストーリーボードにUIButtonUIViewを追加しました。UIViewControllerボタンとビューの両方のサイズを同じサイズに変更しました。

ここに画像の説明を入力

私の VC の -viewDidAppear:animated メソッドで、ボタンとビューのフレームと境界をダンプします。

- (void)viewDidAppear:(BOOL)animated
{
    NSLog(@"button bounds: %@", NSStringFromCGRect(self.theButton.bounds));
    NSLog(@"button frame:  %@", NSStringFromCGRect(self.theButton.frame));

    NSLog(@"view bounds:   %@", NSStringFromCGRect(self.theView.bounds));
    NSLog(@"view frame:    %@", NSStringFromCGRect(self.theView.frame));
}

そして、シミュレーターで実行したときの出力は次のとおりです。

button bounds: {{0, 0},     {100, 100}}
button frame:  {{110, 72},  {100, 100}}
view bounds:   {{0, 0},     {100, 12}}
view frame:    {{110, 179}, {100, 12}}

デバイスで実行する場合:

button bounds: {{0, 0},     {100, 100}}
button frame:  {{110, 72},  {100, 100}}
view bounds:   {{0, 0},     {100, 100}}
view frame:    {{110, 179}, {100, 100}}

シミュレーターで実行しているときにビューが 12 の高さを報告する理由がわかりません。ビューはシミュレーターでは正しく描画されませんが、デバイスで実行すると期待どおりに描画されます。UIViewControllerの一番上UIVIewには「Autoresize Subviews」がチェックされていないことに注意してください(ただし、どちらの方法でも違いはありません)。

(Xcode 4.5.2. iOS 6.0)

ありがとう、CS

ここに画像の説明を入力

4

1 に答える 1

1

ディスプレイ レイアウトで [Retina 4 フォーム ファクターを適用] ボタンをクリックします。これは Retina 4 用に設定されているため、シミュレーターでの実行時に画面のサイズが 3.5 に変更されます。これは、iPhone5 シミュレータ (Retina 4 インチ) を実行することで確認できます。フォーム ファクターを 3.5 インチに切り替えると、高さが 12 に変化します。

ここに画像の説明を入力

于 2012-12-05T14:26:44.893 に答える