Interface Builder:从NIB调整视图大小

ale*_*xey 11 cocoa-touch objective-c interface-builder uiviewcontroller uiview

我有一个自定义的UIViewController和一个nib文件中的相应视图.视图直接添加到UIWindow.

[window addSubview:customViewController.view];
Run Code Online (Sandbox Code Playgroud)

窗口和视图的大小是默认值(相应地为480x320460x320).

当我在nib文件中创建CustomViewController并在IB Attributes选项卡中选中"从NIB调整视图"时,一切正常.

但是当我使用initWithNibName消息以编程方式创建CustomViewController时,视图未正确定位在窗口上.底部有一条空条纹.它的高度是20px.我看到它是因为状态栏偏移.

IB使用"从NIB调整视图"来处理它.如何以编程方式模拟?

看来IB使用了一些UIViewController的自定义子类.那么问题是:如何在那里实施"从NIB调整视图"?

zou*_*oul 1

当我想确保视图覆盖整个屏幕时,我会执行以下操作:

\n\n
- (void) viewWillAppear: (BOOL) animated\n{\n    [super viewWillAppear:animated];\n    [[self view] setFrame:[[UIScreen mainScreen] bounds]];\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

感觉就像黑客,所以我只将其作为最后的手段,当我可以\xe2\x80\x99t 使视图以其他方式运行时:)

\n