swift - 如何删除 Swift 小屏幕上的“safeArea”外观?(背景不是全屏)
问题描述
我正在制作一个项目并解决黑色边框的问题 - 我不明白为什么我的背景没有全屏显示。看起来锚点是对的,也许问题出在 SceneDelegate 中,但我不知道确切。
这是我的 SceneDelegate 代码:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
self.window = UIWindow(frame: windowScene.coordinateSpace.bounds)
self.window?.windowScene = windowScene
window?.rootViewController = DetailsViewController()
window?.makeKeyAndVisible()
}
这是我的视图控制器:
private let detailsView = DetailsView() // view where backgroundImage and cat picture exist
private func setupLayout() { // method for setting constraints for view
view.addSubview(detailsView)
detailsView.centerXAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerXAnchor).isActive = true
detailsView.centerYAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerYAnchor).isActive = true
}
如果您知道如何解决此问题,请与我分享。我试图谷歌它但失败了。
解决方案
您可以如下设置约束以进行detailsView
全屏显示。在这里,我们将顶部、底部、尾随和前导锚点设置detailsView
为等于view.safeAreaLayoutGuide
private func setupLayout() { // method for setting constraints for view
view.addSubview(detailsView)
let safeAreaGuide = self.view.safeAreaLayoutGuide
NSLayoutConstraint.activate([
detailsView.bottomAnchor.constraint(equalTo: safeAreaGuide.bottomAnchor),
detailsView.topAnchor.constraint(equalTo: safeAreaGuide.topAnchor),
detailsView.trailingAnchor.constraint(equalTo: safeAreaGuide.trailingAnchor),
detailsView.leadingAnchor.constraint(equalTo: safeAreaGuide.leadingAnchor)
])
}
推荐阅读
- python - 如何转换列表中的数字?
- matplotlib - plt.locator_params 未按预期工作
- sql - 在 where 条件下使用子查询结果
- ios - Obj-c,我可以使用协议作为函数参数的一种参数吗?
- java - 使用 EPoll 的 Netty TCP Ping Pong 性能数据
- java - 如何在 javafx 的 tableview 中显示多行单元格?
- powershell - PowerShell、Selenium、隐藏控制台输出
- c# - 如何在 Ubuntu 中使用 Visual Studio Code 开发 Unity3D 项目
- git - 分支上的 Git 递归克隆不起作用
- html - 仅使用 HTML 和 CSS 在图像顶部显示表格