adjust scroll content offset when nav bar toggles

This commit is contained in:
Satindar Dhillon
2022-02-16 20:40:39 -08:00
parent 45533fa562
commit 0eca980993

View File

@ -57,6 +57,8 @@ extension WebAppViewCoordinator: UIScrollViewDelegate {
let yOffset = scrollView.contentOffset.y
if yOffset == 0 {
let additionalOffset = (1 - navBarVisibilityRatio) * navBarHeight
scrollView.contentOffset.y += additionalOffset
navBarVisibilityRatio = 1
return
}
@ -78,12 +80,16 @@ extension WebAppViewCoordinator: UIScrollViewDelegate {
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if decelerate, scrollView.contentOffset.y < (yOffsetAtStartOfDrag ?? 0) {
let additionalOffset = (1 - navBarVisibilityRatio) * navBarHeight
scrollView.contentOffset.y += additionalOffset
navBarVisibilityRatio = 1
}
yOffsetAtStartOfDrag = nil
}
func scrollViewShouldScrollToTop(_: UIScrollView) -> Bool {
func scrollViewShouldScrollToTop(_ scrollView: UIScrollView) -> Bool {
let additionalOffset = (1 - navBarVisibilityRatio) * navBarHeight
scrollView.contentOffset.y += additionalOffset
navBarVisibilityRatio = 1
return false
}