【问题标题】:UITableView has a gap above the first cellUITableView 在第一个单元格上方有一个间隙
【发布时间】:2016-08-11 00:01:19
【问题描述】:

在我的表格视图的第一个单元格上方有一个白色间隙,当您以任何方式与视图交互时,它就会消失。差距和导航栏一样高。我已经尝试过self.automaticallyAdjustsScrollViewInsets = false 并使用 0 x 0 视图作为标题。第一种方法什么都不做,而第二种方法会产生错误的结果。

【问题讨论】:

    标签: ios swift uitableview


    【解决方案1】:

    申请

    [self.navigationController setNavigationBarHidden:YES]; 
    

    self.automaticallyAdjustsScrollViewInsets = false; 
    

    如你所说。这对我有用。

    啊,还有一件事。 重要

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return HEIGHT_DEFAULT_TABLE_HEADER;
    }
    
    
    - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return HEIGHT_DEFAULT_TABLE_FOOTER;
    }
    

    这两种方法可以调整表格视图的页眉和页脚高度。

    【讨论】:

    • 我不想隐藏导航栏,这样就无济于事了。而且我知道如何更改页眉和页脚的高度,但差距似乎与这些无关。
    • 仅供参考 - 问题被标记为 Swift,而不是 Objective-C。
    • 好的,很快..,@Pixel BTW 你是在 viewDidLoad 还是其他地方添加了它?就我而言,我将其添加到 viewDidLoad
    • @HwanghoKim 链接的答案有所帮助。谢谢你。我还必须在父视图控制器上自动设置AdjustsScrollViewInsets。
    【解决方案2】:

    我已经尝试了所有可能的解决方案,并发现它适用于 iOS 11 及更高版本:

        self.tableView.contentInsetAdjustmentBehavior = .never
    

    【讨论】:

      【解决方案3】:

      这件事曾经发生在我身上。尝试产品-> 清洁项目。

      还可以尝试重新启动 XCode。

      如果这不起作用,请尝试完全删除标题。如果要将其值设置为 0 x 0,为什么还要有一个标题。

      还要确保属性检查器上的插图也为零。

      如果这些都不起作用,请尝试最有效的解决方案,即完全删除您的UITableView 并重新添加它:(

      【讨论】:

      • 尝试了所有这些东西,没有任何帮助。