UITableview在视图顶部添加空格

时间:2017-12-19 15:54:51

标签: swift uitableview

我遇到了一个奇怪的问题,桌面视图在顶部添加了一个空的“空白区域”。我将表视图约束绑定到上面的5个分段控制字段。

我是Swift的新手,我不确定如何进一步调试这些类型的UI问题。我已经检查了约束,我不认为这是问题。故事板没有显示这个额外的空白区域......它来自哪里?

编辑:它似乎只在iOS10上创建空白。在iOS11上看起来很好。

Application home screen

编辑:xCode屏幕

xCode Screen

3 个答案:

答案 0 :(得分:2)

编辑:我看到别人拿了我的代码并且已经被选中但是为了在这里提供完整的答案。

此行为是由ios平台的自动插入引起的。这里有两个选择:

  1. 如果将表格视图捕捉到导航栏的下边缘,请务必执行以下代码。它将禁用iOS 11和旧版iOS上的自动插入。
  2. 否则你可以将你的tableview捕捉到视图的边缘并省略代码,因为代码的目的是补偿导航栏/ tabbar的大小,并且因为你将tableview捕捉到它们后面/下面,你需要补偿发生。
  3. 适用于iOS 11及更旧平台的#1场景的代码。

    目标-C:

    if (@available(iOS 11, *)) {
        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    } else {
       self.automaticallyAdjustsScrollViewInsets = NO
    }
    

    夫特:

    if #available(iOS 11.0, *) {
        tableView.contentInsetAdjustmentBehavior = .never
    } else {
        automaticallyAdjustsScrollViewInsets = false
    }
    

答案 1 :(得分:1)

似乎激活了表视图上的自动内容插入,您可以通过将此代码添加到视图控制器来停止此行为。

  if #available(iOS 11, *) {
     self.tableView.contentInsetAdjustmentBehavior = .never;
  }else{
     self.automaticallyAdjustsScrollViewInsets = false
  }

答案 2 :(得分:0)

尝试查看Participants ViewController的“属性检查器”(在右侧菜单中)。检查选项'Extend Edges'并取消选中'Under Top Bars',然后重新定位您的tableview。

相关问题