我的申请的起点是这个窗口(白色背景):
- (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旋转两次,视图就会完美地定位在正确的位置,并以黑色背景填充所有屏幕。
有什么想法吗?
谢谢!
答案 0 :(得分:0)
检查IB中的MainScreenController设置。您应该选择模拟状态栏元素(cmd-1),以便视图最初位于状态栏下方。
编辑 - 为什么在这里调用代理中的initWithNibName?我使用的大多数app模板都有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;