How to disable scrolling entirely in a WKWebView?

前端 未结 10 1690
再見小時候
再見小時候 2020-12-28 14:07

I know this looks like a simple question one can simply say:

webview.scrollView.scrollEnabled = NO;
webview.scrollView.panGestureRecognizer.enabled = NO;
web         


        
10条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-28 15:03

    Here is a Swift 3 version:

    extension WKWebView {
    
        func setScrollEnabled(enabled: Bool) {
            self.scrollView.isScrollEnabled = enabled
            self.scrollView.panGestureRecognizer.isEnabled = enabled
            self.scrollView.bounces = enabled
    
            for subview in self.subviews {
                if let subview = subview as? UIScrollView {
                    subview.isScrollEnabled = enabled
                    subview.bounces = enabled
                    subview.panGestureRecognizer.isEnabled = enabled
                }
    
                for subScrollView in subview.subviews {
                    if type(of: subScrollView) == NSClassFromString("WKContentView")! {
                        for gesture in subScrollView.gestureRecognizers! {
                            subScrollView.removeGestureRecognizer(gesture)
                        }
                    }
                }
            }
        }
    }
    

提交回复
热议问题