我正在使用loadView以编程方式设置一个UIViewController子类,并想知道如果我得到它的权利。当我在界面生成器中查看我的“Interface.xib”时,它的视图显示0,20,320,460,状态栏在顶部。我的问题是,当我构建应用程序时,视图向上移动(即忽略状态栏)。我正在通过设置视图框架来纠正这个问题,但我有点好奇它为什么不从xib文件进来?loadNibNamed,视图向上移动?
- (void)loadView {
NSLog(@"HYBRID UI: %s", __PRETTY_FUNCTION__);
NSArray *nibArchive = [[NSBundle mainBundle] loadNibNamed:@"Interface" owner:self options:nil];
UIView *nibView = [nibArchive lastObject];
[nibView setFrame:[[UIScreen mainScreen] applicationFrame]];
[self setView: nibView];
}
欢呼加里
什么是您正在加载视图的父视图?框架坐标相对于父视图。当视图和父级使用applicationFrame时,我遇到类似这样的问题(尽管它向下移动,而不是向上移动)。 – benzado 2010-11-16 15:28:24
另外:你什么时候加载视图?当父视图具有不同的大小(例如CGRectZero)并且视图被layoutSubviews调整大小时,是否有可能将视图添加到层次结构中? – benzado 2010-11-16 15:30:31
父窗口是窗口,我使用[window addSubview:[[self controller] view]]从应用程序委托中添加此视图;它只是一个非常简单的测试。 – fuzzygoat 2010-11-16 15:40:09