0

このウィンドウ(白い背景)にアプリケーションの開始点があります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    mainScreen = [[MainScreenController alloc] initWithNibName:@"MainScreenController" bundle:[NSBundle mainBundle]];

    // add it to the main window
    [window  addSubview:[mainScreen view]];

    // show view
    [window makeKeyAndVisible];

    NSLog(@"started");

    return YES;
}

また、MainScreenControllerは、Interface Builderによって作成された(blackBackground)を備えたUIViewControllerです。

アプリケーションは完全に実行されますが、最初は、黒いビューがステータスiphoneパネルの高さのように上に移動します(下部に白い長方形が残ります)。

iPhoneを2回回転させると、ビューは適切な場所に完全に配置され、すべての画面が黒い背景で塗りつぶされます。

何か案が?

ありがとう!

4

1 に答える 1

0

IB で MainScreenController の設定を確認してください。ビューが最初にステータス バーの下に配置されるように、シミュレートされたステータス バー要素 (cmd-1) を選択する必要があります。

編集- ここでデリゲートで initWithNibName を呼び出すのはなぜですか? 私が使用したほとんどのアプリ テンプレートには、OS によって初期化されたメイン ビュー nib があり、IB を使用して、メイン VC インターフェイスで IBOutlet を設定します。initWithNibName を呼び出した後、{0,0} の最初のフレーム原点がある可能性があります。これを確認するには、initWithNibName 呼び出しの後に次の行を追加します。

NSLog(@"mainscreen frame=%@", NSStringFromCGRect(mainscreen.view.frame));

CGRect frame = mainscreen.view.frame;
frame.origin.y = 20;  // move below status bar
mainscreen.view.frame = frame;
于 2010-06-16T01:15:10.527 に答える