更改UIViewController self.view框架
我试图显示一个viewController xib视图,其视图显示在一个固定的标题横幅(0,0,320,44),这是一个imageView添加在应用程序窗口。
这是因为我需要它在导航多个视图控制器时粘在屏幕上。 这是我正在做的项目的一个要求。
到目前为止我已经尝试过:
-
resize的XIB视图到适当的帧大小(0,0,320,416),都用点符号和设置。
-
使用self.view.frame = CGRectMake(0,44,320,416)更改viewDidLoad中的框架;
但它不工作。 任何build议?
在viewWillAppear
设置框架
- (void)viewWillAppear:(BOOL)animated { self.view.frame = CGRectMake(0, 44, 320, 416); [super viewWillAppear:animated]; }
只是想添加更多。 更改UIViewController视图的原因在viewDidLoad
不起作用,因为调用[window makeKeyAndVisible]
,通常在viewDidLoad
之后调用该[window makeKeyAndVisible]
。 这个调用将改变window.rootViewController
的框架等于窗口的框架。 您可以通过更改UIViewController的view.frame AFTER [window makeKeyAndVisible]
来testing这一点,并且更改将会保持不变。
viewWillAppear
和viewDidAppear
在[window makeKeyAndVisible]
被调用,但在视图的框架被调整后。
需要注意的是,只有最上面的控制器是rootViewController
,其视图的框架会自动更改。 这不会影响附加到rootViewController
任何rootViewController
。