【发布时间】:2010-11-06 11:22:37
【问题描述】:
我创建了一个简单的 iPhone 应用程序,它有两个 .xib 文件。在应用程序代表完成启动时,我通过调用显示第一个 .xib 文件:
[window addSubview:myView];
我在 IBAction 上为 UIButton 执行相同操作以将视图更改为 myView2。
我发现,当我运行应用程序时,两个视图都有一个大约 10 像素的白条。我还注意到按钮偏移了 10 个像素(大约)。所以我得到的印象是视图是从屏幕外 10 像素处显示出来的,并且结束得很短。
知道为什么会发生这种情况,如何修复它,或者如何进一步调试正在发生的事情?我检查了我的 .xib 文件,它们占用了设备的整个高度(即没有白条),所以这看起来是 XCode 内部的一个问题。
编辑:我已经缩小了问题的范围。我正在使用两种方法来加载子视图。当我在applicationDidFinishLaunching 中加载第一个视图时,一切都很好。但是,如果我用[self originalView] 方法替换window 的两条消息,那么一切都会变得有点混乱。
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//[self originalView]; <- I want to use this instead of the following two lines
// Override point for customization after app launch
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
-(void)endView{
endV = [[EndViewController alloc] initWithNibName:@"EndView" bundle:nil];
[window removeFromSuperview];
[window addSubview:endV.view];
}
-(void)originalView{
viewController = [[MyAppViewController alloc] init];
[window removeFromSuperview];
[window addSubview:viewController.view];
}
据我所知,我总是调用相同的代码行,无论它是在 applicationDidFinishLaunching 还是在 [self originalView] 中,但似乎 window 变成了一个不同的对象。
【问题讨论】:
标签: iphone xcode uiview window xib