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 旋转两次,视图将完美地定位在正确的位置,黑色背景填充了整个屏幕。

任何的想法?

谢谢!

4

1 回答 1

0

检查 IB 中的 MainScreenController 设置。您应该选择一个模拟状态栏元素 (cmd-1),以便视图最初位于状态栏下方。

编辑- 你为什么在你的代表中调用 initWithNibName ?我使用的大多数应用程序模板都有由操作系统初始化的主视图笔尖,您使用 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 回答