From 2584462bc1d53b0e50a72a5cb25121aea931d0b7 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Thu, 16 Jan 2020 19:40:13 -0700 Subject: [PATCH] Fix scrolling code so that it takes into consideration the content is under the bars now. Issue #1633 --- iOS/Article/ArticleViewController.swift | 4 ---- iOS/Article/WebViewController.swift | 10 +++++----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/iOS/Article/ArticleViewController.swift b/iOS/Article/ArticleViewController.swift index d4149e845..441f833d9 100644 --- a/iOS/Article/ArticleViewController.swift +++ b/iOS/Article/ArticleViewController.swift @@ -228,10 +228,6 @@ class ArticleViewController: UIViewController { currentWebViewController?.focus() } - func finalScrollPosition() -> CGFloat { - return currentWebViewController?.finalScrollPosition() ?? 0.0 - } - func canScrollDown() -> Bool { return currentWebViewController?.canScrollDown() ?? false } diff --git a/iOS/Article/WebViewController.swift b/iOS/Article/WebViewController.swift index 00258fa4d..2eed2462a 100644 --- a/iOS/Article/WebViewController.swift +++ b/iOS/Article/WebViewController.swift @@ -192,17 +192,13 @@ class WebViewController: UIViewController { webView.becomeFirstResponder() } - func finalScrollPosition() -> CGFloat { - return webView.scrollView.contentSize.height - webView.scrollView.bounds.size.height + webView.scrollView.contentInset.bottom - } - func canScrollDown() -> Bool { return webView.scrollView.contentOffset.y < finalScrollPosition() } func scrollPageDown() { let scrollToY: CGFloat = { - let fullScroll = webView.scrollView.contentOffset.y + webView.scrollView.bounds.size.height + let fullScroll = webView.scrollView.contentOffset.y + webView.scrollView.layoutMarginsGuide.layoutFrame.height let final = finalScrollPosition() return fullScroll < final ? fullScroll : final }() @@ -464,6 +460,10 @@ private struct ImageClickMessage: Codable { private extension WebViewController { + func finalScrollPosition() -> CGFloat { + return webView.scrollView.contentSize.height - webView.scrollView.bounds.height + webView.scrollView.safeAreaInsets.bottom + } + func startArticleExtractor() { if let link = article?.preferredLink, let extractor = ArticleExtractor(link) { extractor.delegate = self