我正在尝试显示一个viewController xib视图,其视图显示在固定标题横幅(0,0,320,44)下,这是在应用程序窗口中添加的imageView。
这是因为我需要它在我导航多个视图控制器时粘在屏幕上。这是我正在进行的项目的要求。
到目前为止,我已经尝试过:
使用点表示法和setter将XIB视图调整为适当的帧大小(0,0,320,416)。
使用self.view.frame更改viewDidLoad中的帧= CGRectMake(0,44,320,416);
但它不起作用。有什么建议吗?
答案 0 :(得分:16)
在viewWillAppear
- (void)viewWillAppear:(BOOL)animated
{
self.view.frame = CGRectMake(0, 44, 320, 416);
[super viewWillAppear:animated];
}
答案 1 :(得分:1)
只想添加一点。改变UIViewController视图的原因在viewDidLoad
中不起作用是因为调用[window makeKeyAndVisible]
,通常在viewDidLoad
之后调用。此调用将更改window.rootViewController
的帧以等于窗口的帧。您可以通过更改UIViewController的view.frame [window makeKeyAndVisible]
来测试这一点,并且更改将会坚持。
viewWillAppear
和viewDidAppear
在[window makeKeyAndVisible]
内被调用,但在视图的框架调整后。
需要注意的是,只有rootViewController
的最顶层控制器才能自动更改其视图框架。这不会影响附加到childViewControllers
的任何rootViewController
。