【发布时间】:2019-03-28 12:28:46
【问题描述】:
我正在将一个 ViewController 推到我当前的 ViewController 上。
我要推送的 ViewController 是一个 WebView,不过我想这并不重要。
我希望呈现的 ViewController 不位于状态栏下方。但是我该如何设置这些约束呢?
这是我加载推送的 ViewController 的代码:
@objc func loadWebView(sender: UIButton) {
let vc = WebViewVC()
webViewVC = vc
self.present(webViewVC!, animated: true, completion: nil)
}
如果我为 webViewVC.view 设置与父 ViewController 的视图相关的约束,它当然会告诉我这是不允许的,因为视图位于不同的视图层次结构中。
这就是我在 WebViewVC 中设置布局的方式:
func setUpView() {
let view = UIView()
self.view = view
view.st(navigationBar,webView)
navigationBar.heightAnchor.constraint(equalTo: webView.heightAnchor, multiplier: 0.1).isActive = true
navigationBar.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
navigationBar.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
navigationBar.topAnchor.constraint(equalTo: view.topAnchor, constant: 0).isActive = true
navigationBar.bottomAnchor.constraint(equalTo: webView.topAnchor, constant: 0).isActive = true
webView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
webView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
webView.topAnchor.constraint(equalTo: navigationBar.bottomAnchor, constant: 0).isActive = true
webView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 0).isActive = true
}
【问题讨论】:
-
你不能把它放在状态栏上。您可以从此视图或整个应用程序中完全删除状态栏(有很多关于如何执行此操作的互联网资源)或相应地创建第二个 VC。
-
你把它放在状态栏上。最好保留状态栏来创建第二个View Controller
标签: ios swift uiviewcontroller autolayout constraints