diff --git a/CardStackController/Classes/CardStackController.swift b/CardStackController/Classes/CardStackController.swift index e47495a..7d87e2f 100644 --- a/CardStackController/Classes/CardStackController.swift +++ b/CardStackController/Classes/CardStackController.swift @@ -91,6 +91,7 @@ public class CardStackController: UIViewController { fileprivate var isPresentingCard = false fileprivate var initialDraggingPoint = CGPoint.zero fileprivate var stackCompletionBlock: CompletionBlock? + fileprivate var backgroundSnapshotView: UIImageView? fileprivate var previousViewController: UIViewController? { let previousCardIndex = viewControllers.count - 2 @@ -127,10 +128,19 @@ public class CardStackController: UIViewController { super.viewWillAppear(false) guard isBeingPresented else { return } - let screenShotImage = drawWindowHierarchy(afterScreenUpdates: false) - let imageView = UIImageView(image: screenShotImage) - view.insertSubview(imageView, at: 0) - imageView.pinEdgesToSuperviewEdges() + + let backgroundSnapshot = drawWindowHierarchy(afterScreenUpdates: false) + backgroundSnapshotView = UIImageView(image: backgroundSnapshot) + + view.insertSubview(backgroundSnapshotView!, at: 0) + backgroundSnapshotView!.pinEdgesToSuperviewEdges() + } + + public override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + + backgroundSnapshotView?.removeFromSuperview() + backgroundSnapshotView = nil } public override func viewDidLayoutSubviews() {