我正在将URL加载到wkwebview,并且我想阻止它像这样查看网页的一侧
https://drive.google.com/file/d/1qStJ1C_rrcjobSuorgPeLTkHZc82oUV4/view?usp=sharing
代替
https://drive.google.com/file/d/1G05f6UVolmQCqdqKdJ0UFBBA6LVDI-BN/view?usp=sharing
Scrollview已经为假,反弹也为假。有人可以帮我吗
谢谢!
我已经尝试过使用scrollview和bounces参数,但是wkwebview仍然向左移动,露出图像中显示的蓝色部分。我要显示第一个图像中显示的网页,以使其缺少更好的用词而将视图锁定为显示状态。我不确定自己的解释是否很好,但是请告诉我是否需要解释。我在下面添加了一个视频,显示我想知道如何做。
https://drive.google.com/file/d/1uErGQlB1HKLU7px49UtGbsX9nOYqa3FN/view?usp=sharing
导入基金会 导入UIKit 导入WebKit 类ViewControllerWebKit:UIViewController,WKUIDelegate {
var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
webView.scrollView.bounces = false
let myURL = URL(string:"https://www.swpc.noaa.gov/communities/space-weather-enthusiasts")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}}
如照片和视频中所示,我不知道如何阻止它移动,因此它不会显示网页的蓝色部分。
答案 0 :(得分:0)
如果要停止页面滚动到侧面,则在html中显示的宽度应等于device-width。您可以通过定义viewport来实现。问题是您的页面右侧有蓝色条,所以我认为无论哪种方式都必须显示它。 此解决方案将停止滚动行为,但该栏仍将显示,因为它是页面的一部分。
override func viewDidLoad() {
super.viewDidLoad()
let jscript = "var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);"
let userScript = WKUserScript(source: jscript, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
let wkUController = WKUserContentController()
wkUController.addUserScript(userScript)
let webConfiguration = WKWebViewConfiguration()
webConfiguration.userContentController = wkUController
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.uiDelegate = self
view = webView
webView.scrollView.bounces = false
let myURL = URL(string:"https://www.swpc.noaa.gov/communities/space-weather-enthusiasts")
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
}
希望这会有所帮助。