添加到滚动视图内容视图的最后一个视图落后于主页指示器

Last view added to content view of scrollview goes behind the home indicator

我有一个 UIViewController 包含一个 scrollView

scrollView 固定 (0,0,0,0) 到 Safe Area,这样:

viewController viewDidLayoutSubviews 的正文中,我向 Content View 添加了一些视图这个 scrollView.

我在 iPhone 6 模拟器中没有发现任何问题,但在 iPhone X 模拟器中发生了一些奇怪的事情:我添加到滚动视图的最后一个视图部分落后于 home 指示器:

我错误地认为这是 Safe Area 的问题 solved

我该怎么做才能解决这个问题?

更改与 superviewBottom 相关的 ScrollView BottomConstraint 而不是 safeArea。

从 iOS 11 和新的 iPhone X 设备开始,这是 safeAreaLayoutGuide 的默认行为。

如果您将底部锚点固定到安全区域,table 视图和集合视图等滚动视图子类会自动处理此问题。

由于您手动填充滚动视图,因此您需要获取底部安全区域高度并使用该值插入滚动视图。

你可以这样做:

scrollView.contentInset.bottom = view.safeAreaInsets.bottom