删除 UITableView 中 UINavigationController 上方的灰色条

Posted

技术标签:

【中文标题】删除 UITableView 中 UINavigationController 上方的灰色条【英文标题】:Removing grey bar above UINavigationController in a UITableView 【发布时间】:2011-06-01 11:50:08 【问题描述】:

我正在以编程方式创建一个带有 UINavigationController 的 UITableView:

- (void) displayView:(int)intNewView

    NSLog(@"%i", intNewView);
    [currentView.view removeFromSuperview];
    [currentView release];

    switch (intNewView) 
        ......

        case 5:
            vc = [[RootViewController alloc] init];
            currentView = [[UINavigationController alloc] initWithRootViewController:vc];
            [currentView setTitle:@"Events"];
            break;
    

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:0.5];

    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
                           forView:self.view 
                             cache:YES];

    [self.view addSubview:currentView.view];

    [UIView commitAnimations];

但是,当视图出现时,导航控制器上方有一个恼人的灰色条,我的其他视图都没有受到此影响。只是带有 UITableView 和 NavigationController 的视图。

任何想法是什么导致了这个以及如何删除它?

谢谢,

杰克

【问题讨论】:

检查这个:http://***.com/questions/1054539/not-sure-why-uiview-is-being-nudged-up-by-around-10px 【参考方案1】:

UINavigationController 期望成为窗口中的根视图,因此它包含状态栏。如果将它放在另一个包含状态栏的视图中,则会绘制第二个空状态栏,看起来像“位于导航控制器上方的恼人的灰色栏”。

【讨论】:

【参考方案2】:

当 UINavigationController 初始化时,它会期望 iPhone 的状态栏出现在屏幕顶部。因此,为了适应这一点,视图基本上向下移动了一点。但是,由于我的 UINavigationController 在我的 RootViewController 内,因此 UINavigationController 不必适应状态栏,因此可以使用放置在我的 RootViewController 的 viewDidLoad 方法内的以下行“向上移动”适当的距离:

self.navigationController.view.frame = CGRectMake(0, -20, 320, 480);

现在当程序运行时,我的视图顶部没有灰色条/灰色空间。

感谢您的所有帮助,为我指明了正确的方向。

杰克

【讨论】:

查看 UIViewController(其中 UINavigationController 是子类)的 WantsFullScreen 属性。

以上是关于删除 UITableView 中 UINavigationController 上方的灰色条的主要内容,如果未能解决你的问题,请参考以下文章

iOS UITableView删除组中唯一行,即[UITableView _endCellAnimationsWithContext:] warning

从 UITableView 中删除顶部填充

尝试从 UITableView 中删除行时断言失败

使用 NSFetchedResultsController 从 UITableView 中删除

如何在 UITableView 中删除箭头

如何在 Swift 中从 Core Data 中删除数据时删除 UITableView 行?