From 6e369686e59ccf20024e97a9fe07eb0387fc4080 Mon Sep 17 00:00:00 2001 From: Enzo Victorin Date: Wed, 21 Aug 2024 21:36:37 +0200 Subject: [PATCH 1/2] Add support for iPadOS mouses This commit enables scroll events recognition from trackpads and mouses. See https://developer.apple.com/documentation/uikit/uipangesturerecognizer/3538978-allowedscrolltypesmask --- Sources/RefreshControl.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Sources/RefreshControl.swift b/Sources/RefreshControl.swift index 1cc9dba..3632f1d 100644 --- a/Sources/RefreshControl.swift +++ b/Sources/RefreshControl.swift @@ -181,6 +181,11 @@ public class RefreshControl: UIControl { originScrollViewContentInset = scrollView.contentInset let recognizer = UIPanGestureRecognizer(target: self, action: #selector(viewPanned)) + + if #available(iOS 13.4, *) { + recognizer.allowedScrollTypesMask = .all + } + recognizer.delegate = self scrollView.addGestureRecognizer(recognizer) From a048c9c89207457bcbcc5b860543b607e53ca077 Mon Sep 17 00:00:00 2001 From: Enzo Victorin Date: Wed, 21 Aug 2024 21:42:25 +0200 Subject: [PATCH 2/2] Allow customization by reusing the mask that the scroll view uses --- Sources/RefreshControl.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/RefreshControl.swift b/Sources/RefreshControl.swift index 3632f1d..f4725c1 100644 --- a/Sources/RefreshControl.swift +++ b/Sources/RefreshControl.swift @@ -183,7 +183,7 @@ public class RefreshControl: UIControl { let recognizer = UIPanGestureRecognizer(target: self, action: #selector(viewPanned)) if #available(iOS 13.4, *) { - recognizer.allowedScrollTypesMask = .all + recognizer.allowedScrollTypesMask = scrollView.panGestureRecognizer.allowedScrollTypesMask } recognizer.delegate = self