围绕iPhone X Thingy的SnapKit

当iPhone X出现时,我必须确保我的Talk Dim Sum应用程序中的所有内容都避免在屏幕底部出现新的家用指示器。 这在许多情况下会自动发生,例如UITabBarController,但是在我的菜品页面中,我在底部有一个自定义工具栏视图。 为了保持在主页指示器水平的黑条上方,我检查了设备的型号标识符(使用UIDevice-Hardware程序包),以查看它是否是iPhone X,然后添加一些底部填充(如果是)。

但是现在有多个iPhone X型号,并且每次出现新型号时都添加一个型号检查并不是一个好计划。 正确的技术是使用safeAreaLayoutGuide。 我正在使用SnapKit,此问题在github问题中进行了描述,因此页面视图控制器中工具栏的布局代码现在如下所示:

  buttonPanel.snp.makeConstraints {(make-> Void inmake.width.equalTo(view)make.height.equalTo(50)make.centerX.equalTo(view)make.bottom.equalTo(view.safeAreaLayoutGuide.snp.bottomMargin) // elf.view.safeAreaInsets.bottom) 

}

在iPhone XR上,工具栏安全地位于主页指示器上方: