Как настроить прокрутку веб-представления в задаче c? - PullRequest
0 голосов
/ 21 января 2019

Я добавляю UIWebView как подпредставление view.это представление всегда имеет прокрутку, даже если содержимое UIWebView может быть показано без прокрутки.

  1. Можно ли не прокручивать UIWebView, когда содержимое не отображается на экране?

Другая проблема заключается в том, что при прокрутке UIWebView фон становится темно-серым

можно ли поменять этот цвет?

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Используйте приведенный ниже код, получите высоту содержимого веб-просмотра в webviewDidFinishLoading и затем установите эту высоту, если высота содержимого не превышает высоту вашего веб-просмотра. В приведенном ниже коде я предполагаю, что верхние и нижние ограничения веб-просмотра равны нулю от суперпредставления.

class StaticContentVC: UIViewController , UIWebViewDelegate {

@IBOutlet weak var webView  : UIWebView!

override func viewDidLoad() {
    super.viewDidLoad()

    webView.delegate = self
    webView.scrollView.isScrollEnabled = false
    webView.backgroundColor = UIColor.white
    self.webView.loadRequest(URLRequest(url: YourcontentUrl as URL))

}

public func webViewDidFinishLoad(_ webView: UIWebView){
    let newSize = Float(webView.stringByEvaluatingJavaScript(from: "document.documentElement.scrollHeight") ?? "") ?? 0.0

    if CGFloat(newSize) > UIScreen.main.bounds.size.height {
        webView.scrollView.isScrollEnabled = true
    }else {
        webView.frame = CGRect(x: webView.frame.origin.x, y: webView.frame.origin.y, width: webView.frame.size.width, height: CGFloat(newSize))
        webView.scrollView.isScrollEnabled = false

    }
}
0 голосов
/ 21 января 2019

Отключение прокрутки

При первой загрузке экрана в viewDidLoad напишите:

yourWebView.scrollView.bounces         = false
yourWebView.scrollView.isScrollEnabled = false

и реализуйте метод UIWebViewDelegate , чтобы включить прокрутку, когда содержимоеполностью загружен:

func webViewDidFinishLoad(_ webView: UIWebView)
{
    yourWebView.scrollView.bounces         = true
    yourWebView.scrollView.isScrollEnabled = true
}

Удаление цвета фона

Вам необходимо установить для свойства opaque вашего веб-представления значение false:

yourWebView.backgroundColor = UIColor.clear
yourWebView.isOpaque        = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...