首页 > 解决方案 > 如何按设备设置安全区大小?

问题描述

我想通过设备设置一个安全区。我的网络视图设置为SafeArea above, SuperView below。在iPhone X系列之后,价值Y44因为notch面积。但是对于iPhone 6and来说iPhone 844太宽了。我该如何调整它?

当前 WKWebView 的区域

在此处输入图像描述

从当前 Swift5 加载 WebView 区域

@IBOutlet var WKWebView: FullScreenWKWebView!
...
        let config = WKWebViewConfiguration()

        contentController.add(self, name: "goApp")

        config.userContentController = contentController

        WKWebView = FullScreenWKWebView(frame: WKWebView.frame, configuration: config)

        WKWebView.uiDelegate = self
        WKWebView.navigationDelegate = self
        WKWebView.scrollView.delegate = self
        view.addSubview(WKWebView)
        view.addSubview(indicator)
...
class FullScreenWKWebView: WKWebView {
    override var safeAreaInsets: UIEdgeInsets {
        return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
    }
}

我想按设备设置 Top SafeArea 区域。

我正在尝试一些事情,但没有成功。

我已经设置了约束,但是右边和下面的屏幕都被剪掉了,顶部对于 iPhone 6 来说还是太宽了。

在此处输入图像描述

iPhone 6 的顶部

在此处输入图像描述

标签: iosswiftviewwkwebviewsafearealayoutguide

解决方案


使约束锚定到安全区域并为其赋予所需的值。它将自动适应所有设备。

在这里您可以看到一个蓝色背景的 UIView,其顶部和底部以 0 值锚定到安全区域(如果您想要与安全区域更远的距离,可以增加该值)。

故事板 查看约束


视图将自动绘制,并给出与安全区域的适当距离(iPhone X 或更高版本为 44,iPhone 8 及更低版本为 0)。

iPhone X 结果 iPhone 8 结果


推荐阅读