如何按设备设置安全区域大小?

我想按设备设置安全区域。我的网络视图设置为SafeArea aboveSuperView below。在iPhone X系列之后,由于Y区域,44的值为notch。但是对于iPhone 6iPhone 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)
    }
}

我想按设备设置“顶部安全区域”。

我正在尝试,但是没有成功。

我已经设置了约束,但是右侧和下方的屏幕被切掉了,顶部对于iPhone 6还是太宽了。

如何按设备设置安全区域大小?

iPhone 6的顶部

如何按设备设置安全区域大小?

b806826296 回答:如何按设备设置安全区域大小?

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

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

Storyboard View constraints


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

iPhone X result iPhone 8 result

,

我无法无条件地将WKWebView的顶部区域设置为安全区域。因为安全区域包括NavigationController条形区域。但是我不使用NavigationController。因此,不可能将安全区域设置为约束。

所以我通过按设备大小分开解决了这个问题。

设置主故事板

enter image description here

根据设备高度调整WKWebVIew的高度和Y值

let screenHeight = UIScreen.main.bounds.size.height
if screenHeight > 667 {
            WKWebView = FullScreenWKWebView(frame: CGRect( x: 0,y: 44,width: WKWebView.frame.width,height: WKWebView.frame.height - 44 ),configuration: config)
        } else {
            WKWebView = FullScreenWKWebView(frame: CGRect( x: 0,y: 20,height: WKWebView.frame.height - 20 ),configuration: config)
        }

iPhone 6

enter image description here

iPhone X及更高版本

enter image description here

本文链接:https://www.f2er.com/3125149.html

大家都在问