 				snapshotView.bottomAnchor.constraint(equalTo: presentingViewSnapshotView.bottomAnchor)
 			])
 		}
+	}
+	
+	private func updateSnapshotViewAspectRatio() {
+		guard
+			let containerView = containerView,
+			let presentingViewSnapshotView = presentingViewSnapshotView,
+			cachedContainerWidth != containerView.bounds.width
+			else {
+				return
+		}
+		
+		cachedContainerWidth = containerView.bounds.width
+		aspectRatioConstraint?.isActive = false
+		let aspectRatio = containerView.bounds.width / containerView.bounds.height
+		aspectRatioConstraint = presentingViewSnapshotView.widthAnchor.constraint(equalTo: presentingViewSnapshotView.heightAnchor, multiplier: aspectRatio)
+		aspectRatioConstraint?.isActive = true
 	}
 	
 	// MARK:- Dismissal

			animations: {
				containerView.frame.origin.y -= newHeight - currentHeight
			}, completion: { [weak self] _ in
				self?.presentingViewController.view.alpha = 1
				containerView.frame = CGRect(x: 0, y: statusBarHeight, width: containerView.frame.width, height: newHeight)
				self?.presentedViewController.view.mask = nil
				self?.presentedViewController.view.round(corners: [.topLeft, .topRight], withRadius: 8)
			}
		)
		
		updateSnapshotView()
	}
	
	/// Method to update the snapshot view showing a representation of the

                self.presentedViewController.view.frame = frame
                self.presentedViewController.view.mask = nil
                self.presentedViewController.view.round(corners: [.topLeft, .topRight], withRadius: 8)
				self.updateSnapshotViewAspectRatio()
			}, completion: { _ in 
				self.updateSnapshotView()
			}
