Add support for scrolling the discovery tab to the top/first tab

This commit is contained in:
Jed Fox 2022-11-03 09:24:30 -04:00
parent 4a6ab82570
commit 8114b7d2ac
No known key found for this signature in database
GPG Key ID: 0B61D18EA54B47E1
3 changed files with 24 additions and 1 deletions

View File

@ -14,6 +14,12 @@ protocol ScrollViewContainer: UIViewController {
extension ScrollViewContainer {
func scrollToTop(animated: Bool) {
scrollView.scrollRectToVisible(CGRect(origin: .zero, size: CGSize(width: 1, height: 1)), animated: animated)
scrollView.scrollToTop(animated: animated)
}
}
extension UIScrollView {
func scrollToTop(animated: Bool) {
scrollRectToVisible(CGRect(origin: .zero, size: CGSize(width: 1, height: 1)), animated: animated)
}
}

View File

@ -131,6 +131,13 @@ extension DiscoveryViewController: ScrollViewContainer {
var scrollView: UIScrollView {
return (currentViewController as? ScrollViewContainer)?.scrollView ?? UIScrollView()
}
func scrollToTop(animated: Bool) {
if scrollView.contentOffset.y <= 0 {
scrollToPage(.first, animated: animated)
} else {
scrollView.scrollToTop(animated: animated)
}
}
}
extension DiscoveryViewController {

View File

@ -190,6 +190,16 @@ extension SearchViewController: UISearchControllerDelegate {
}
}
// MARK: - ScrollViewContainer
extension SearchViewController: ScrollViewContainer {
var scrollView: UIScrollView {
discoveryViewController?.scrollView ?? UIScrollView()
}
func scrollToTop(animated: Bool) {
discoveryViewController?.scrollToTop(animated: animated)
}
}
// MARK: - UICollectionViewDelegate
//extension SearchViewController: UICollectionViewDelegate {
// func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {