0

我在iOS7中有两个我无法弄清楚的问题。

第一个问题是 TableView 行位于状态栏下方,我该如何禁用它,或者让表格视图的部分标题始终位于状态栏下方?

状态栏 状态栏

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

黑色状态栏

更新:

仍然没有答案。

4

4 回答 4

1

我已经在另一篇文章中得到了答案,请各位对iOS6-7和StatusBar有问题的人检查一下:

UIStatusBar 在 Facebook 新的 iOS7 应用程序中

享受!

于 2013-10-03T07:02:06.340 回答
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;
}

希望这对您有所帮助。

于 2013-09-30T11:47:11.190 回答
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:

640像素/88像素

对于 iOS 7:

640像素/128像素

于 2013-09-30T12:37:10.443 回答
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;
}
于 2013-09-30T12:42:02.700 回答