如何在带有标签和按钮的页面的一半上显示 WKWebView
How to show WKWebView on half the page with label and buttons
我是 Xcode 和一般应用程序开发的新手,我是一名高年级学生,正在为我的高级项目开发应用程序。我有一个视图控制器,我需要在屏幕的下半部分显示一个网站,并在网站上方有一个标签和按钮。使用苹果在他们关于 WKWeb View 的开发者文档中提供的示例代码,我能够加载该网站,但它占据了全屏。有没有办法让网页只占屏幕的一半。我一直没能找到关于如何执行此操作的好教程,但如果有人知道这会有所帮助。
import UIKit
import WebKit
class HomeViewController: UIViewController, WKUIDelegate{
@IBOutlet weak var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .init(), configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let myURL = URL(string:"http://example.com")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
} ```
我认为你的问题出在这里:view = webView.
在这里,您将 webView 指定为 ViewController 的 rootView,通常是整个屏幕(至少在您的情况下)。
您最好将其添加到您的视图中。
import UIKit
import WebKit
class HomeViewController: UIViewController, WKUIDelegate {
private var webView = WKWebView(frame: CGRect.zero, configuration: WKWebViewConfiguration())
override func viewDidLoad() {
super.viewDidLoad()
// set the delegate for webView
webView.uiDelegate = self
// define URL
let myURL = URL(string:"https://www.apple.com/de/")
// create request
let myRequest = URLRequest(url: myURL!)
// show request
webView.load(myRequest)
// make webView ready for Autolayout
webView.translatesAutoresizingMaskIntoConstraints = false
// add webView to view
view.addSubview(webView)
// size the webView beeing 75 % of the screen
webView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
webView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
webView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
webView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.75).isActive = true
}
}
我是 Xcode 和一般应用程序开发的新手,我是一名高年级学生,正在为我的高级项目开发应用程序。我有一个视图控制器,我需要在屏幕的下半部分显示一个网站,并在网站上方有一个标签和按钮。使用苹果在他们关于 WKWeb View 的开发者文档中提供的示例代码,我能够加载该网站,但它占据了全屏。有没有办法让网页只占屏幕的一半。我一直没能找到关于如何执行此操作的好教程,但如果有人知道这会有所帮助。
import UIKit
import WebKit
class HomeViewController: UIViewController, WKUIDelegate{
@IBOutlet weak var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .init(), configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let myURL = URL(string:"http://example.com")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
} ```
我认为你的问题出在这里:view = webView. 在这里,您将 webView 指定为 ViewController 的 rootView,通常是整个屏幕(至少在您的情况下)。
您最好将其添加到您的视图中。
import UIKit
import WebKit
class HomeViewController: UIViewController, WKUIDelegate {
private var webView = WKWebView(frame: CGRect.zero, configuration: WKWebViewConfiguration())
override func viewDidLoad() {
super.viewDidLoad()
// set the delegate for webView
webView.uiDelegate = self
// define URL
let myURL = URL(string:"https://www.apple.com/de/")
// create request
let myRequest = URLRequest(url: myURL!)
// show request
webView.load(myRequest)
// make webView ready for Autolayout
webView.translatesAutoresizingMaskIntoConstraints = false
// add webView to view
view.addSubview(webView)
// size the webView beeing 75 % of the screen
webView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
webView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
webView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
webView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.75).isActive = true
}
}