iPhone X – 设置家庭指示灯周围区域的颜色

当我试图将一个表单alignment到iPhone X的安全区域时,我对Xcode非常陌生,它在表单下面留下了一个透明的区域。

有没有方法可以设置该区域的填充而不扩展纸张或在安全区域之外alignment?

在这里输入图像说明

是的,这不是一个好主意,但可以解决您的问题。

按照下面的步骤:

  • 启用“安全区域布局”
  • 使用背景颜色创build/添加视图(即将其命名为bottomPaddingView)(以编程方式或使用故事板),与您的图纸颜色相同。
  • 定位它(使用以下约束 – 以下约束不是代码结构,而只是显示约束/定位关系)
    – bottomPaddingView.bottom = self.view.bottom
    – bottomPaddingView.trailing = self.view.trailing
    – bottomPaddingView.leading = self.view.leading
    – bottomPaddingView.top = self.view.safeAreaLayoutConstraint.bottom //如果您启用了“安全区域布局”
    bottomPaddingView.top = self.view.bottomLayoutguide //如果您尚未启用“安全区域布局”

现在使用淡入淡出的animation隐藏/取消隐藏您的bottomPaddingView

这是我的小扩展。 如果有人可以build议改善,不要访问“幻数”标签添加查看 – 欢迎!

 extension UIViewController { private static let insetBackgroundViewTag = 98721 //Cool number func paintSafeAreaBottomInset(withColor color: UIColor) { guard #available(iOS 11.0, *) else { return } if let insetView = view.viewWithTag(UIViewController.insetBackgroundViewTag) { insetView.backgroundColor = color return } let insetView = UIView(frame: .zero) insetView.tag = UIViewController.insetBackgroundViewTag insetView.translatesAutoresizingMaskIntoConstraints = false view.addSubview(insetView) view.sendSubview(toBack: insetView) insetView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true insetView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true insetView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true insetView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true insetView.backgroundColor = color } 

}