Fixes #641 - Room previews failing to load because of incorrect sliding sync view ranges

This commit is contained in:
Stefan Ceriu
2023-04-20 18:15:06 +03:00
committed by Stefan Ceriu
parent 0ed69d5649
commit b564036b68
3 changed files with 47 additions and 46 deletions
+19 -10
View File
@@ -24,30 +24,39 @@ class ScrollViewAdapter: NSObject, UIScrollViewDelegate {
scrollView?.delegate = self
}
}
var isScrolling = CurrentValueSubject<Bool, Never>(false)
private func update(_ scrollView: UIScrollView) {
isScrolling.send(scrollView.isDragging || scrollView.isDecelerating)
let didScroll = PassthroughSubject<Void, Never>()
let isScrolling = CurrentValueSubject<Bool, Never>(false)
// MARK: - UIScrollViewDelegate
func scrollViewDidScroll(_ scrollView: UIScrollView) {
didScroll.send(())
}
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
update(scrollView)
updateDidScroll(scrollView)
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
update(scrollView)
updateDidScroll(scrollView)
}
func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
update(scrollView)
updateDidScroll(scrollView)
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
update(scrollView)
updateDidScroll(scrollView)
}
func scrollViewDidScrollToTop(_ scrollView: UIScrollView) {
update(scrollView)
updateDidScroll(scrollView)
}
// MARK: - Private
private func updateDidScroll(_ scrollView: UIScrollView) {
isScrolling.send(scrollView.isDragging || scrollView.isDecelerating)
}
}