我试图在ViewController视图中放置一个TableView,但在导航栏底部和表格顶部之间留下44个高度的间隙。然后我想在该间隙中放置一个UITextField作为固定头。出于某种原因,TableView在" Prototype Cells"的开头上方有一个空白空格。它只是白色的空间。这是故事板中的样子。
查看应用程序显示时,它的外观如下:
滚动表格时,它会一直到正确的位置:
答案 0 :(得分:89)
尝试查看'属性检查器'参与者ViewController的(在右侧菜单中)。 选中' Extend Edges' 选项,然后取消选中' Under Top Bars',然后重新定位您的tableview。
另一种可能的解决方案是取消选中'调整滚动视图插图' 选项。 原因是当viewController扩展其边缘时,让我们说在顶部栏下,tableView的scrollView会自动调整其插入顶部,以便tableView的内容正好在顶部栏下面开始。但在你的情况下,这是不需要的,因为你的tableView本身就在条形码下面开始。
专注于ViewController并进入Attribute Inspector选项卡:
答案 1 :(得分:12)
试试这个:
self.tableView.contentInset = UIEdgeInsetsMake(-65, 0, 0, 0)
答案 2 :(得分:9)
只需在ViewDidLoad方法
中添加此内容即可self.automaticallyAdjustsScrollViewInsets = NO;
答案 3 :(得分:1)
您无需更改“延伸边缘”的默认设置。
看起来真正的问题是故事板中的空白表标题视图。它显示在您提供的故事板的屏幕截图中,位于“输入名称”视图下方和“原型单元”视图的正上方。删除它。
答案 4 :(得分:0)
我刚刚为此找到了解决方案。 在我的情况下,我使用TabBarViewController,A只取消选中'调整滚动视图插入'选项。问题消失了。
答案 5 :(得分:0)
对于Objective-C人员,请在ViewDidLoad方法中添加它。
[self.tableView setContentInset:UIEdgeInsetsMake(-20, 0, 0, 0)];
答案 6 :(得分:0)
我的问题是,我将tableHeaderView
设置为新的UIView
self.tableHeaderView = UIView(frame: .zero)
删除此行,问题消失了。试试这个:
//self.tableHeaderView = UIView(frame: .zero)
答案 7 :(得分:0)