             pxAnimator.addAnimation(animation: { [weak self] in
                 for (index, view) in animationRows.enumerated() {
                     let pinTopConstraint = pinTopConstraints[index]
-                    pinTopConstraint.constant = shouldHideSummary ? pinTopConstraint.constant + animationDistance : pinTopConstraint.constant - animationDistance
+
+                    if shouldHideSummary {
+                        pinTopConstraint.constant += animationDistance
+                    } else {
+                        if shouldHideSplitPaymentView {
+                            pinTopConstraint.constant -= animationDistance
+                        } else {
+                            pinTopConstraint.constant -= animationDistance
+                        }
+                    }
+
                     self?.layoutIfNeeded()
                     view.alpha = shouldHideSummary ? 0 : 1
+                }
+
+                if shouldAnimateSplitPaymentView {
+                    if shouldHideSplitPaymentView {
+                        self?.layoutIfNeeded()
+                        self?.superview?.layoutIfNeeded()
+                        self?.hideSplitPaymentView(duration: animationDuration)
+                    } else {
+                        self?.layoutIfNeeded()
+                        self?.superview?.layoutIfNeeded()
+                        self?.showSplitPaymentView(duration: animationDuration)
+                    }
                 }
             })
 

            self.splitPaymentView = splitPaymentView
            self.addSubview(splitPaymentView)
            PXLayout.matchWidth(ofView: splitPaymentView).isActive = true
            PXLayout.setHeight(owner: splitPaymentView, height: 55).isActive = true
            PXLayout.centerHorizontally(view: splitPaymentView).isActive = true
            PXLayout.pinBottom(view: splitPaymentView).isActive = true
            PXLayout.put(view: splitPaymentView, onBottomOf: summaryView).isActive = true


                        let summaryRowViewFrame = summaryRowView.convert(summaryRowView.bounds, to: self)
                        let pinTopConstraint = PXLayout.pinTop(view: newRow, withMargin: summaryRowViewFrame.minY)

                        if !shouldHideSummary {
                            if shouldHideSplitPaymentView {
                                pinTopConstraint.constant += animationDistance + self.splitPaymentViewHeight
                            } else {
                                pinTopConstraint.constant += animationDistance
                            }
                        }

                        pinTopConstraint.isActive = true
                        pinTopConstraints.append(pinTopConstraint)
                    }
