UIView 内的 UITableView 上面的空白 space
Empty white space above UITableView inside a UIView
我试图在我的 ViewController 视图中放置一个 TableView,但在导航栏底部和 table 顶部之间留下了 44 高度的差距。然后我想在该间隙内放置一个 UITextField 作为固定 header。出于某种原因,TableView 在 "Prototype Cells" 的开头上方有一个空的白色 space。它只是白色 space。这是情节提要中的样子。
查看应用程序显示时,它是这样的:
滚动 table 时,它会一直滚动到正确的位置:
尝试查看参与者 ViewController 的 'attribute inspector'(在右侧菜单中)。
检查选项 'Extend Edges' 并取消选中 'Under Top Bars',然后重新定位您的表格视图。
另一种可能的解决方案是取消选中 'Adjust Scroll View Insets' 选项。
原因是当 viewController 扩展其边缘时,比方说在顶栏下方,tableView 的 scrollView 会自动调整其 inset top,以便 tableView 的内容将从顶栏下方开始。但在您的情况下,这不是必需的,因为您的 tableView 本身是从栏下开始的。
关注 ViewController 并进入“属性检查器”选项卡:
您应该不需要更改“延伸边”的默认设置。
看起来真正的问题是故事板中的空白 table header 视图。它显示在您提供的故事板屏幕截图中,位于“输入名称”视图下方和“原型单元格”视图上方。删除它。
只需在您的 ViewDidLoad 方法中添加此内容
self.automaticallyAdjustsScrollViewInsets = NO;
试试这个:
self.tableView.contentInset = UIEdgeInsetsMake(-65, 0, 0, 0)
I just found a solution for this.
In my case, i was using TabBarViewController, A just uncheck the option 'Adjust Scroll View Insets'. Issues goes away.
https://i.stack.imgur.com/qgQI8.png
对于 Objective-C 人,将其添加到您的 ViewDidLoad 方法中。
[self.tableView setContentInset:UIEdgeInsetsMake(-20, 0, 0, 0)];
我的问题是,我将 tableHeaderView
设置为新的 UIView
,就像这样
self.tableHeaderView = UIView(frame: .zero)
去掉这一行,问题就解决了。试试这个:
//self.tableHeaderView = UIView(frame: .zero)
将您的 table 视图样式从分组更改为普通
我试图在我的 ViewController 视图中放置一个 TableView,但在导航栏底部和 table 顶部之间留下了 44 高度的差距。然后我想在该间隙内放置一个 UITextField 作为固定 header。出于某种原因,TableView 在 "Prototype Cells" 的开头上方有一个空的白色 space。它只是白色 space。这是情节提要中的样子。
查看应用程序显示时,它是这样的:
滚动 table 时,它会一直滚动到正确的位置:
尝试查看参与者 ViewController 的 'attribute inspector'(在右侧菜单中)。 检查选项 'Extend Edges' 并取消选中 'Under Top Bars',然后重新定位您的表格视图。
另一种可能的解决方案是取消选中 'Adjust Scroll View Insets' 选项。 原因是当 viewController 扩展其边缘时,比方说在顶栏下方,tableView 的 scrollView 会自动调整其 inset top,以便 tableView 的内容将从顶栏下方开始。但在您的情况下,这不是必需的,因为您的 tableView 本身是从栏下开始的。
关注 ViewController 并进入“属性检查器”选项卡:
您应该不需要更改“延伸边”的默认设置。
看起来真正的问题是故事板中的空白 table header 视图。它显示在您提供的故事板屏幕截图中,位于“输入名称”视图下方和“原型单元格”视图上方。删除它。
只需在您的 ViewDidLoad 方法中添加此内容
self.automaticallyAdjustsScrollViewInsets = NO;
试试这个:
self.tableView.contentInset = UIEdgeInsetsMake(-65, 0, 0, 0)
I just found a solution for this. In my case, i was using TabBarViewController, A just uncheck the option 'Adjust Scroll View Insets'. Issues goes away.
https://i.stack.imgur.com/qgQI8.png
对于 Objective-C 人,将其添加到您的 ViewDidLoad 方法中。
[self.tableView setContentInset:UIEdgeInsetsMake(-20, 0, 0, 0)];
我的问题是,我将 tableHeaderView
设置为新的 UIView
,就像这样
self.tableHeaderView = UIView(frame: .zero)
去掉这一行,问题就解决了。试试这个:
//self.tableHeaderView = UIView(frame: .zero)
将您的 table 视图样式从分组更改为普通