[英]How to set Safe Area Layout for new IPhone Devices in swift
我创建了一个简单的 view.Xib 文件,如果 Internet 连接因任何原因中断或断开连接,我的视图将显示在底部。
为此,我以编程NSLayoutConstraint
设置了NSLayoutConstraint
。
SafeAreaLayout
它会在每个新 iPhone 设备(如 iPhone XR、11、Pro 或 Pro max)的底部SafeAreaLayout
出空间。SafeAreaLayout
则底部的视图未正确显示。 在具有SafeAreaLayout
所有其他设备(iPhone 7、8 或 plus)中,它可以正常工作。
如何在没有空间的底部正确设置视图?
我的代码:
let viewW = offlineView.fromNib()
view.addSubview(viewW)
viewW.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
viewW.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
viewW.trailingAnchor.constraint(equalTo: self.view.trailingAnchor),
viewW.topAnchor.constraint(equalTo: self.view.bottomAnchor,constant: -25),
viewW.bottomAnchor.constraint(equalTo: self.view.bottomAnchor),
])
let viewW = offlineView.fromNib()
view.addSubview(viewW)
viewW.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
viewW.leadingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leadingAnchor),
viewW.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor),
viewW.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor,constant: -25),
viewW.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor),
])
附上截图:
安全区:
没有安全区:
您可能想尝试这种方法...
约束“暗”视图:
然后,将您的“圆圈”视图添加为 darkView 的子视图,并约束:
和标签,也是darkView的子视图,受约束:
现在...
自动布局将使darkView 的底部保持在屏幕底部,而darkView 的顶部距圆形视图顶部4 pts。
自动布局将保持圆图的底部4点从视图的底部(当没有软家按钮),并从安全区的底部4点(当有软家按钮) .
这是结果——黄色虚线是安全区边界。
在 iPhone 8 上:
在 iPhone 11 Pro 上:
以及它在 Storyboard 中的外观:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.