iOS 7状态栏重叠内容

时间:2014-11-24 09:08:48

标签: ios objective-c ios7 uiviewcontroller statusbar

我有一个相当简单的例子,我编写了一个非常简单的布局:

- (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];
 }

如您所见,我使用IIViewDeckControllerLink)作为根控制器。目前它看起来像这样:

Screenshot

2 个答案:

答案 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对齐。布局指南将处理状态栏,通话栏以及稍后移动到导航控制器的视图。