Ios UITableViewController和安全区域

Ios UITableViewController和安全区域,ios,swift,uitableview,tableview,Ios,Swift,Uitableview,Tableview,我正在使用UITableViewController的子类来支持我非常简单的表视图控制器。像这样: 但是,表视图覆盖了安全区域。当我在iPhoneX模拟器上预览时,这一点尤其明显 我希望看到这样的情况: 根据我上面的代码片段,我尝试使用tableView.insetContentViewstoSafeArea,但它没有做到苹果文档中所说的: 当此属性的值为true(默认值)时,表视图将调整内容视图在其每个单元格、页眉和页脚的开头和结尾的插入,以使内容适合安全区域 我知道没有UITable

我正在使用
UITableViewController
的子类来支持我非常简单的表视图控制器。像这样:

但是,表视图覆盖了安全区域。当我在iPhoneX模拟器上预览时,这一点尤其明显

我希望看到这样的情况:

根据我上面的代码片段,我尝试使用
tableView.insetContentViewstoSafeArea
,但它没有做到苹果文档中所说的:

当此属性的值为true(默认值)时,表视图将调整内容视图在其每个单元格、页眉和页脚的开头和结尾的插入,以使内容适合安全区域

我知道没有
UITableViewController
的替代解决方案,但我特别想使用它(它非常方便),并希望能够对其进行调整,使其正常运行并观察安全区域。苹果公司设计了一个破损的组件,这一点是不可信的


无论如何,没有一篇类似问题的帖子对你有所帮助,所以希望有一个新的开始。

你看到的是正常和正确的。表视图是视图控制器的整个视图,覆盖整个屏幕。它仍然可以正常工作,因为滚动内容是插入的,所以用户可以滚动查看表格的所有部分;桌子的顶部向下插入。所以一切都很好


如果您确实希望在上一个屏幕快照中显示效果,则必须将表视图控制器设置为其他视图控制器的子视图控制器。典型的界面是将表视图控制器包装在导航控制器中,以便导航栏填充屏幕顶部。或者您可以手动使用容器视图/嵌入序列

谢谢你的反馈。不,不想改变任何默认的UITableViewController行为,只要它在安全方面是正确的。此外,我终于有足够的大脑在苹果官方网站上查到了一个例子,表格确实一直流到了屏幕底部的主指示器(短黑线)下:但我还是不明白。我认为安全区的全部目的是确保那里没有任何东西——没有?不是“什么都没有”。子视图。但是您的表视图不是子视图。我只能建议你重读我的答案。视图控制器的视图(如果不是子视图控制器)始终占据整个屏幕。这就是当你决定使用一个不是孩子的表视图控制器时所得到的。我告诉过你让它成为孩子的两种常见方法。基本上现在我已经把我的整个答案重复了一遍,作为一个评论。我理解了嵌入或放置导航控制器的要点。正如我所说,我们并不打算修改默认布局,因为我们已经确定它不会违反安全区域约束。我不明白的是,为什么进入屏幕底部安全区域的表视图(或占据整个屏幕的任何其他视图控制器的“基本”视图)被认为是正常的。我想这是因为iOS“知道”将其放置在这样的位置,即它不包括基本的控制,如家庭或时间/信号指示器。也就是说,在那些控制之下。我必须说第三遍吗?全屏视图控制器的视图占据全屏。这就是你所拥有的。表视图不是子视图。这就是风景。
class FriendsViewController: UITableViewController {


    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.insetsContentViewsToSafeArea = true

    }
}