From 3ac7e88f1d043c275440c47a6189340cf656d5fb Mon Sep 17 00:00:00 2001 From: pandaman Date: Thu, 13 May 2021 15:29:22 +0900 Subject: [PATCH 1/2] Add a function to scroll to top when the header view is sticked. --- .../General/SegementSlideViewController+setup.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Source/General/SegementSlideViewController+setup.swift b/Source/General/SegementSlideViewController+setup.swift index 1e4d393..2331736 100644 --- a/Source/General/SegementSlideViewController+setup.swift +++ b/Source/General/SegementSlideViewController+setup.swift @@ -214,6 +214,19 @@ extension SegementSlideViewController { childScrollView.forceFixedContentOffsetY = 0 } } + + internal func resetCurrentParentViewControllerContentOffsetY(_ parentScrollView: UIScrollView) { + defer { + scrollViewDidScroll(parentScrollView, isParent: true) + } + parentKeyValueObservation?.invalidate() + resetCurrentChildViewControllerContentOffsetY() + resetOtherCachedChildViewControllerContentOffsetY() + scrollView.contentOffset.y = 0 + DispatchQueue.global().asyncAfter(deadline: .now() + 2) { + self.observeScrollViewContentOffset() + } + } internal func cleanUpChildKeyValueObservations() { let observations = childKeyValueObservations From c3fb9114e2deaf74ac7cc822e4831dd9a583af84 Mon Sep 17 00:00:00 2001 From: pandaman Date: Thu, 13 May 2021 18:26:32 +0900 Subject: [PATCH 2/2] change thread --- Source/General/SegementSlideViewController+setup.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/General/SegementSlideViewController+setup.swift b/Source/General/SegementSlideViewController+setup.swift index 2331736..7305ca6 100644 --- a/Source/General/SegementSlideViewController+setup.swift +++ b/Source/General/SegementSlideViewController+setup.swift @@ -223,7 +223,7 @@ extension SegementSlideViewController { resetCurrentChildViewControllerContentOffsetY() resetOtherCachedChildViewControllerContentOffsetY() scrollView.contentOffset.y = 0 - DispatchQueue.global().asyncAfter(deadline: .now() + 2) { + DispatchQueue.main.asyncAfter(deadline: .now() + 2) { self.observeScrollViewContentOffset() } }