我的桌面视图中的headerView应该一直到设备的顶部。在iPhone X上也是如此,所以缺口超过了它。
然后,当我滚动我的tableView时,我使用scrollViewDidScroll(scrollView: UIScrollView)来更改headerView的高度以添加scrollView.contentOffset.y,这样它就一直运行下去了。
我一滚动它就开始工作,但一开始不行。
看起来是这样的:
ios - UITableView contentOffset的headerView未对齐-LMLPHP
这个在X上
ios - UITableView contentOffset的headerView未对齐-LMLPHP
如何去掉白色区域,以便灰色区域在加载时进入下方?
我试了几个地方,但似乎桌面视图仍然没有内容偏移。。。我想我在这里遗漏了一些基本的东西“应该怎么做”。。。
更新:ViewHierarchy,蓝色是tablewView,但是我得到了这个距离。。。
ios - UITableView contentOffset的headerView未对齐-LMLPHP

最佳答案

好的,我找到了。因此,这与iPhone X引入的安全区域的变化有关。
有两种可能性,这实际上取决于故事板的设置:
如果您使用的是故事板,并且您的基础是一个UIViewController,其中放置了一个tableView:
然后修复自动布局是答案:
启用“安全区域”后,单击最上面的视图,并创建顶部约束相对于常量为0的超视图。默认情况下,它希望保护安全区域,因此它是相对于安全区域设置的。
如果使用的是UITableViewController模板(例如,拖出导航控制器时的默认值-tableview组合框(我的情况))
这里没有可以设置的约束。因此它对我不起作用(见上文)。
若要修复此问题,请单击根表视图,选择大小检查器,然后将“内容插入”设置为“从不”。
或者在viewDidLoad中以编程方式:

self.tableView.contentInsetAdjustmentBehavior = .never

关于ios - UITableView contentOffset的headerView未对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48851115/

10-11 17:00