     public init() {
         super.init(frame: .zero)
 
+        // Make sure we getre-drawn whenever the bounds change!
+        layer.needsDisplayOnBoundsChange = true
+
         configure(scrollView: scrollView)
         configure(stackView: scrollableStackView)
         configure(stackView: fixedStackView)

        }

        // Setup the Context
        let scale = UIScreen.main.scale
        let lineWidthInPoints = Constants.topBorderHeightInPixels / scale

        context.clear(rect)
        context.setShouldAntialias(false)
        context.setLineWidth(lineWidthInPoints)

        // Background

        // Top Separator
        topBorderColor.setStroke()

        context.setShouldAntialias(false)
        context.move(to: CGPoint(x: 0, y: lineWidthInPoints))
        context.addLine(to: CGPoint(x: bounds.maxX, y: lineWidthInPoints))
        context.strokePath()

        // Scrollable / Fixed `>` Separator
        let originX = fixedStackView.frame.minX - Constants.fixedStackViewInsets.left

        context.setShouldAntialias(true)
        context.move(to: CGPoint(x: originX, y: bounds.minY))
        context.addLine(to: CGPoint(x: originX + Constants.fixedSeparatorMidPointPaddingX, y: bounds.midY))
        context.addLine(to: CGPoint(x: originX, y: bounds.maxY))
        context.strokePath()
    }

