[英]WKWebView is cutting off my other view in Xcode 9 & Swift 4.0
我是使用Xcode和Swift的新手。
我在使用新的WKWebView時遇到問題。 我通常使用情節提要,但我了解到Xcode 9有一個錯誤,如果您進行的構建包含ios 11之前的內容,則不允許您使用WKWebView。我了解到,可以通過編程方式添加它,但是並一直在這里遵循Apple的說明: https : //developer.apple.com/documentation/webkit/wkwebview
我需要能夠添加Webview,同時在頂部留出空間來創建我作為橫幅廣告的自定義視圖。 此頂視圖的高度為116,並且在添加Webview之前,約束在所有設備和方向上均有效。
當我添加Webview並添加其自定義大小和約束時,該Webview還可在所有設備和方向上完美運行。 但是,我的頂部橫幅視圖丟失了。
我不確定要丟失的內容還是不確定Webview的代碼寫錯了。 我將屏幕截圖和代碼附加到Webview。
非常感謝你的幫助!
import UIKit
import WebKit
class FirstViewController: UIViewController, WKUIDelegate {
var myWebView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
myWebView = WKWebView(frame: .zero, configuration: webConfiguration)
myWebView.uiDelegate = self
view = myWebView
}
override func viewDidLoad() {
super.viewDidLoad()
myWebView = WKWebView(frame: CGRect( x: 0, y: 116, width: 414, height: 571), configuration: WKWebViewConfiguration() )
self.view.addSubview(myWebView)
myWebView.translatesAutoresizingMaskIntoConstraints = false
myWebView.topAnchor.constraint(equalTo: view.topAnchor, constant: 116).isActive = true
myWebView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: 49).isActive = true
myWebView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
myWebView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
myWebView.widthAnchor.constraint(equalToConstant: 414).isActive = true
myWebView.heightAnchor.constraint(equalToConstant: 571).isActive = true
let myURL = URL(string: "https://apple.com")
let myRequest = URLRequest(url: myURL!)
myWebView.load(myRequest)
}
只要設置了Leading,Trailing,Top和Bottom約束,就刪除寬度和高度約束,因為webViewBottom = mainviewBottom-49,bottom也應為-49而不是49
myWebView.topAnchor.constraint(equalTo: view.topAnchor, constant: 116).isActive = true
myWebView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -49).isActive = true
myWebView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 0).isActive = true
myWebView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 0).isActive = true
您的橫幅消失,只是因為你把你的WKWebView的實例為view
視圖控制器的性能,在最后一行loadView
方法。 嘗試將其添加為子視圖,甚至在Interface Builder中創建2個視圖,第一個用於橫幅,第二個用於Web視圖,您還可以通過IB設置約束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.