我的tableView中的headerView应该一直到设备的顶部。在iPhone X上也是这样,所以缺口越过它。
然后当我滚动我的tableView时,我使用scrollViewDidScroll(scrollView: UIScrollView)
来更改headerView的高度以添加scrollView.contentOffset.y
,这样就可以了。
一旦滚动,它就会起作用但不是最初的。
所以它看起来像这样:
这就在X
上如何摆脱白色区域,以便灰色区域在加载时位于其下方?
我尝试了几个地方,但似乎tableView仍然没有contentOffsets ......我想我在这里缺少一些基本的“应该做什么”...
更新:ViewHierarchy,蓝色是tablewView,但是那时我得到了这个距离......
答案 0 :(得分:1)
好的,我找到了。因此,它与iPhone X引入的安全区域的变化有关。
有两种可能性,它实际上取决于故事板设置:
如果你使用的是故事板,你的基础是一个放在其中的tableView的UIViewController:
然后修复自动布局就是答案:
当启用安全区域时,单击最顶层视图并创建顶部约束相对于superView的常量为0.默认情况下,它希望保护安全区域,使其相对于安全区域设置。
如果您使用的是UITableViewController模板(例如拖出导航控制器时的默认设置 - tableview组合(我的情况))
这里没有可以设置的约束。因此它对我不起作用(见上文)。 要修复它,请单击根tableView,选择大小检查器,然后将“content insets”设置为“never”。
或以编程方式在viewDidLoad中:
self.tableView.contentInsetAdjustmentBehavior = .never
答案 1 :(得分:0)
你是否在故事板中制作了你的桌面视图?
在viewDidLoad中尝试锚定你的tableview:
tableview.topAnchor.constraint(equalTo: view.topAnchor).isActive = true