我已经构建了一个简单的iOS应用程序,可以显示全屏WKWebView。只要没有输入触发屏幕键盘,它就可以正常工作,但是一旦键盘出现,它就会产生错误“无法同时满足约束条件”和完整的NSAutoresizingMaskLayoutConstraints痕迹。
尽管有错误,键盘仍会出现,并且我可以使用文本输入。
我的应用程序非常简单,它只有一个应用程序委托:
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame:UIScreen.main.bounds)
window?.makeKeyAndVisible()
window?.rootViewController = WebViewController()
return true
}
}
和该视图控制器:
import UIKit
import WebKit
class WebViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let webView = WKWebView()
self.view.addSubview(webView)
webView.translatesAutoresizingMaskIntoConstraints = false
webView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
webView.leftAnchor.constraint(equalTo:view.safeAreaLayoutGuide.leftAnchor).isActive = true
webView.rightAnchor.constraint(equalTo:view.safeAreaLayoutGuide.rightAnchor).isActive = true
webView.bottomAnchor.constraint(equalTo:view.safeAreaLayoutGuide.bottomAnchor).isActive = true
let request = URLRequest(url: URL(string: "https://www.google.com/")!)
webView.load(request)
}
}
我在网络视图上使用锚点的方式有问题吗?还是我需要额外的约束来处理屏幕键盘?