fix: tab bar collapses during auto-scroll
All checks were successful
Security Checks / dependency-audit (push) Successful in 14s
Security Checks / secret-scanning (push) Successful in 4s
Security Checks / dockerfile-lint (push) Successful in 5s

tabBarMinimizeBehavior needs scrollViewWillBeginDragging to recognize
a scroll session. Now ScrollViewDriver calls it on the original
delegate when auto-scroll starts, and scrollViewDidEndDragging +
scrollViewDidEndDecelerating when it stops.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Yusuf Suleman
2026-04-04 08:03:23 -05:00
parent 395cca08dd
commit a82ae267b6

View File

@@ -78,11 +78,13 @@ struct ScrollViewDriver: UIViewRepresentable {
}
func startScrolling(in view: UIView) {
// Re-find scroll view if needed
if scrollView == nil {
findScrollView(from: view)
}
guard scrollView != nil else { return }
guard let sv = scrollView else { return }
// Signal scroll start triggers tab bar minimize
originalDelegate?.scrollViewWillBeginDragging?(sv)
let link = CADisplayLink(target: self, selector: #selector(tick))
link.preferredFrameRateRange = CAFrameRateRange(minimum: 30, maximum: 60)
@@ -93,6 +95,12 @@ struct ScrollViewDriver: UIViewRepresentable {
func stopScrolling() {
displayLink?.invalidate()
displayLink = nil
// Signal scroll end lets tab bar reappear
if let sv = scrollView {
originalDelegate?.scrollViewDidEndDragging?(sv, willDecelerate: false)
originalDelegate?.scrollViewDidEndDecelerating?(sv)
}
}
@objc private func tick(_ link: CADisplayLink) {