我有一个相当简单的例子,我编写了一个非常简单的布局:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
self.window.rootViewController = self.someController;
...
现在的问题是,我的viewcontroller的内容低于状态栏(20px)。
建议的方法是手动调整我的viewcontroller并将其移动到底部20px,还是有更聪明的方法来处理它?</ p>
注意:我不想要使用例如UINavigationController
。
[编辑] 澄清一些代码:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.menuController = [[MenuController alloc] init];
CalendarViewController* center = [[[CalendarViewController alloc] init] autorelease];
IIViewDeckController* rootController = [[IIViewDeckController alloc] initWithCenterViewController:center leftViewController:self.menuController];
rootController.leftLedge = [[UIScreen mainScreen] bounds].size.width - 320.0;
rootController.delegate= self.menuController;
self.window.rootViewController = rootController;
[self.window makeKeyAndVisible];
}
如您所见,我使用IIViewDeckController
(Link)作为根控制器。目前它看起来像这样:
答案 0 :(得分:1)
在viewDidLoad
中使用此代码- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
if([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout=UIRectEdgeNone;
}
如果您仍然面临同样的问题,请告诉我。
答案 1 :(得分:1)
执行此操作的正确方法是将所有视图与视图控制器的topLayoutGuide
对齐。布局指南将处理状态栏,通话栏以及稍后移动到导航控制器的视图。