Скрыть вид прокрутки и полосу прокрутки в веб-обозревателе iOS. - PullRequest
0 голосов
/ 25 мая 2019

Я только что переместил свой iOS UIWebview target-c в WKWebkit swift, проблема, с которой я сейчас сталкиваюсь, заключается в том, как скрыть полосу прокрутки с загруженного веб-сайта. Я пытался что-нибудь, но это не сработало, пожалуйста, кто-нибудь может мне помочь.

Я выполнил этот шаг здесь Как скрыть полосу прокрутки в WebView? , и вопрос, и принятый ответ, но у меня это не сработало.

Пожалуйста, я знаю, что это может быть повторяющийся вопрос, но я пробовал много постов, чтобы решить эту ни одну работу.

var lastOffsetY :CGFloat = 0
override func viewDidLoad() {
   super.viewDidLoad()
   webViewSetup()
}

В webViewSetup

func webViewSetup(){
  webView.scrollView.delegate = self      
}

В поле зрения WillAppear

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        let scrollView = webView.subviews[0] as? UIScrollView
        webView.scrollView.contentSize = CGSize(width: webView.frame.size.width, height: webView.scrollView.contentSize.height)
        scrollView?.bounces = false
        scrollView?.decelerationRate = .fast
        scrollView?.showsHorizontalScrollIndicator = false
        webView.scrollView.showsHorizontalScrollIndicator = false
        webView.scrollView.showsVerticalScrollIndicator = false
        webView.scrollView.alwaysBounceHorizontal = false
        webView.scrollView.bounces = false
    }

В scrollViewDidScroll

func scrollViewDidScroll(_ scrollView: UIScrollView) {

        if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) {
            scrollView.setContentOffset(CGPoint(x:scrollView.contentOffset.x, y:scrollView.contentSize.height - scrollView.frame.size.height), animated: false)
        }
    }

//FIXING SCROLL VIEW
//Delegate Methods
func scrollViewWillBeginDragging(_ scrollView: UIScrollView){
    lastOffsetY = scrollView.contentOffset.y
}

//FIXING SCROLL VIEW
func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView){
    let hide = scrollView.contentOffset.y > self.lastOffsetY
    self.navigationController?.setNavigationBarHidden(hide, animated: true)
}

1 Ответ

0 голосов
/ 25 мая 2019

Чтобы отключить прокрутку веб-представления:

webView.scrollView.isScrollEnabled = false

Если код, который вы указали, предназначен только для выключения просмотра прокрутки, этот код можно в значительной степени свести к следующему:

import UIKit
import WebKit

class ViewController: UIViewController, WKUIDelegate {

  var webView: WKWebView!

  //configure webView
  override func loadView() {
    let webConfiguration = WKWebViewConfiguration()
    webView = WKWebView(frame: .zero, configuration: webConfiguration)
    webView.uiDelegate = self
    webView.scrollView.isScrollEnabled = false
    view = webView
  }

  override func viewDidLoad() {
    super.viewDidLoad()

    if let url = URL(string: "https://www.stackoverflow.com") {
      webView.load(URLRequest(url: url))
    }
  }
}
...