【问题标题】:How to get rid of empty space before UITableView?如何摆脱 UITableView 之前的空白空间?
【发布时间】:2016-11-14 14:05:54
【问题描述】:

我有一个UITableView 在一个UIViewController 在一个UINavigationController 在一个UITabBarController

在我的UITableView 中,我有部分标题,所有部分的高度均为 60 像素。设置成这样。

tableView.sectionHeaderHeight = 60

我的UITableView 也有Grouped 的样式属性。

问题是,我的UITableView 上方有空白空间,我想摆脱它。

此问题仅出现在 iPad 上,较小的设备上没有可用空间。 (我分别在 iPad 2 和 iPhone 6 上进行了模拟。)因为这个解决方案 #3 不起作用。

我尝试过但没有奏效的一些解决方案:

  1. self.automaticallyAdjustsScrollViewInsets = false
  2. tableView.contentInset = UIEdgeInsetsZero
  3. self.tableView.contentInset = UIEdgeInsetsMake(-64, 0, 0, 0)

不适用于所有设备。因为我的桌子已经在某些设备上运行良好,这使得它在它们的屏幕上消失了。

  1. UITableView 样式设置为Plain 而不是Grouped

这可行,但我需要我的标题是分组样式而不是简单的。所以我不能用这个。

那么我在这里有什么选择?提前致谢。

编辑:截图:

【问题讨论】:

  • 你的意思是tableview和navigationcont之间有一个空格?
  • 没错。在 UINavigationController 和 UITableView 之间。
  • 您能否添加您可能使用过的屏幕截图和代码/约束?
  • 添加截图。
  • 尝试关闭 navigationBar 和 SearchBar 的 isTranslucent 属性

标签: ios swift xcode uitableview


【解决方案1】:

您需要通过选择相关的viewController 来取消选中adjust scrollview insets 属性,如下图所示:

希望这会有所帮助。

【讨论】:

  • 我已经说过我试过这个并且在#1 中没有为我工作。不过还是谢谢。
  • 哦,您是否尝试过使用情节提要执行此操作可能会解决您的问题。
  • @TheCook 然后我认为有一些持续的问题,你可以在这里分享一些截图。
  • 添加了一些截图。
  • 那么根据设置scrollview insets,我猜searchBartableView之间有额外的空间,如果不确定,那么肯定存在约束问题。
【解决方案2】:

在界面生成器中将UITableViewStyle属性更改为plain,如下所示。

【讨论】:

  • 是的,这解决了空白空间问题。但我想保留 Grouped 属性,正如我在 #4 中所说的那样。所以我们需要找到另一种选择。