gpt4 book ai didi

ios - 为什么 WKWebView 在初始化时调用 scrollviewDidScroll 以及如何防止它?

转载 作者:行者123 更新时间:2023-12-01 16:09:30 25 4
gpt4 key购买 nike

在 UIViewController 中,我实例化了一个 WKWebView 并将 View Controller 设置为 WKWebiew ScrollView 的委托(delegate):

class MyViewController: UIViewController, UIScrollViewDelegate {

var webView : WKWebView!

override func viewDidLoad() {
super.viewDidLoad()

webView = WKWebView(frame: self.view.frame)
view = webView

webView.loadHTMLString("<h1>hello</h1>", baseURL: NSURL(string: "http://www.google.com")!)

webView.scrollView.delegate = self
}

func scrollViewDidScroll(scrollView: UIScrollView) {
println("didScroll")
}

我遇到的问题是,一旦创建了 WKWebView,就会调用 scrollViewDidScroll(即没有用户实际滚动任何内容)。

为什么会这样,我该如何预防?

最佳答案

在scrollViewWillBeginDragging方法中设置一个bool值为true,该方法只有在用户滚动时才会调用,不会被WKWebview自动调用

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {

scrollByDragging = true
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {

if !scrollByDragging{

UIView.animate(withDuration: 0.01) {
scrollView.setContentOffset(.zero, animated: true)
}
}
}

关于ios - 为什么 WKWebView 在初始化时调用 scrollviewDidScroll 以及如何防止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28670483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com