iOS7状态栏问题,我无法弄清楚

时间:2013-09-30 11:37:09

标签: ios objective-c uinavigationcontroller ios7 statusbar

我在iOS7中遇到了两个我无法弄清楚的问题。

第一个问题是TableView行位于状态栏下方,如何禁用它,或者使表视图的节头始终位于状态栏下?

status bar status bar

我的第二个问题是导航控制器状态栏似乎是黑色的黑色背景,我不知道如何解决它,视图控制器背景是白色的,但状态栏提醒黑色和我不知道为什么。

black status bar

更新:

仍然没有答案。

4 个答案:

答案 0 :(得分:1)

我在另一篇文章中得到了答案,请检查每个遇到iOS6-7和StatusBar问题的人:

UIStatusBar as in Facebook new iOS7 application

享受!

答案 1 :(得分:0)

我认为您需要执行以下代码。

您必须检查ios7的条件。

对于tableview,您将需要这两个委托方法。

检查下面的代码。

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    NSString *currSysVer = [[UIDevice currentDevice] systemVersion];

    int versionValue=[currSysVer intValue];

    if(versionValue>=7)
    {
        return 60;
    }
    return 0;
}

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
   UIView  *headerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 60)];

    [headerView setBackgroundColor:[UIColor clearColor]];

    return headerView;
}

希望这会对你有所帮助。

答案 2 :(得分:0)

回答第二期问题!

输入你的didFinishLaunchingWithOptions:

   if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

        [self customizeios7];

    } else {

        [self customizeios6];

    }  

并制作这两个空洞:

-(void)customizeios6 {

    UIImage *navBackgroundImage = [UIImage imageNamed:@"navigationbar-ios6"];

    [[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];

}

-(void)customizeios7 {

    // SET STATUSBAR TEXT WHITE

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    // SET NAVIGATION IMAGE

    UIImage *navBackgroundImage = [UIImage imageNamed:@"navigationbar-ios7"];

    [[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];

}

UINavigationBar的图片尺寸:

适用于iOS 6:

640px / 88px

适用于iOS 7:

640px / 128px

答案 3 :(得分:0)

使用这些代码行

if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
    // iOS 7
    [self prefersStatusBarHidden];
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
} else {
    // iOS 6
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}

- (BOOL)prefersStatusBarHidden
{
   return YES;
}