         } else {
             navigationBarPercentHidden = 1
         }
-        
+
+        if navigationBar.shouldTransformUnderBarViewWithBar {
+            underBarViewPercentHidden = navigationBarPercentHidden
+            extendedViewPercentHidden = navigationBarPercentHidden
+        }
+
         guard navigationBarPercentHidden != currentNavigationBarPercentHidden else {
             return
         }

        let top = 0 - scrollView.contentInset.top
        let targetOffsetY = targetContentOffset.pointee.y - top
        if targetOffsetY < extendedViewHeight + barHeight + underBarViewHeight {
            if targetOffsetY < 0.5 * (extendedViewHeight + underBarViewHeight) { // both visible
                targetContentOffset.pointee = CGPoint(x: 0, y: top)
            } else if targetOffsetY < extendedViewHeight + underBarViewHeight + 0.5 * barHeight  { // only nav bar visible
                targetContentOffset.pointee = CGPoint(x: 0, y: top + extendedViewHeight + underBarViewHeight)
            } else if targetOffsetY < extendedViewHeight + barHeight {
                targetContentOffset.pointee = CGPoint(x: 0, y: top + extendedViewHeight + barHeight + underBarViewHeight)
            }
            return
        }

        let shouldHideUnderBarView = navigationBar.isUnderBarViewHidingEnabled && underBarViewHeight > 0
        let shouldHideExtendedView = navigationBar.isExtendedViewHidingEnabled && extendedViewHeight > 0

        if navigationBar.shouldTransformUnderBarViewWithBar && navigationBar.isBarHidingEnabled {
            underBarViewPercentHidden = (scrollY/(barHeight + underBarViewHeight)).wmf_normalizedPercentage
        } else if shouldHideUnderBarView {
            underBarViewPercentHidden = (scrollY/underBarViewHeight).wmf_normalizedPercentage
        }
        
