From 8db60a313ec608a927dd9856f8591e2375b0fac9 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Mon, 20 Jun 2022 11:26:05 -0400 Subject: [PATCH] Fix stretchy menu interaction not working on iPad --- Reader/Screens/Read/ReadViewController.swift | 5 ++++- Reader/StretchyMenuInteraction.swift | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Reader/Screens/Read/ReadViewController.swift b/Reader/Screens/Read/ReadViewController.swift index a7133cc..f88762e 100644 --- a/Reader/Screens/Read/ReadViewController.swift +++ b/Reader/Screens/Read/ReadViewController.swift @@ -61,7 +61,8 @@ class ReadViewController: UIViewController { navigationItem.largeTitleDisplayMode = .never view.backgroundColor = .appBackground - view.addInteraction(StretchyMenuInteraction(delegate: self)) + let menuInteraction = StretchyMenuInteraction(delegate: self) + view.addInteraction(menuInteraction) webView = WKWebView() webView.translatesAutoresizingMaskIntoConstraints = false @@ -77,6 +78,8 @@ class ReadViewController: UIViewController { if let content = itemContentHTML() { webView.loadHTMLString(content, baseURL: item.url) } + webView.scrollView.alwaysBounceHorizontal = false + webView.scrollView.panGestureRecognizer.require(toFail: menuInteraction.panRecognizer!) view.addSubview(webView) NSLayoutConstraint.activate([ diff --git a/Reader/StretchyMenuInteraction.swift b/Reader/StretchyMenuInteraction.swift index 33b52eb..d906f6b 100644 --- a/Reader/StretchyMenuInteraction.swift +++ b/Reader/StretchyMenuInteraction.swift @@ -23,6 +23,7 @@ class StretchyMenuInteraction: NSObject, UIInteraction { weak var delegate: StretchyMenuInteractionDelegate? private(set) weak var view: UIView? = nil + private(set) var panRecognizer: UIPanGestureRecognizer? private let menuHintView = MenuHintView() fileprivate let feedbackGenerator = UIImpactFeedbackGenerator(style: .medium) @@ -56,7 +57,7 @@ class StretchyMenuInteraction: NSObject, UIInteraction { panRecognizer.delegate = self panRecognizer.allowedScrollTypesMask = [.continuous] view.addGestureRecognizer(panRecognizer) - + self.panRecognizer = panRecognizer } private var prevTranslation: CGFloat = 0