From 846252cc156cca279b5cfc426681d20fec8a8feb Mon Sep 17 00:00:00 2001 From: Ryan Nystrom Date: Wed, 9 Oct 2019 12:41:09 -0400 Subject: [PATCH] pin modal size to inset container --- ContextMenu/ContextMenuPresentationController.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ContextMenu/ContextMenuPresentationController.swift b/ContextMenu/ContextMenuPresentationController.swift index 42fad2f..59a61d3 100644 --- a/ContextMenu/ContextMenuPresentationController.swift +++ b/ContextMenu/ContextMenuPresentationController.swift @@ -58,7 +58,12 @@ class ContextMenuPresentationController: UIPresentationController { override var frameOfPresentedViewInContainerView: CGRect { guard let containerBounds = containerView?.bounds else { return .zero } - let size = presentedViewController.preferredContentSize + var size = presentedViewController.preferredContentSize + + // cap size to inset container bounds + size.width = min(containerBounds.width - 2 * item.options.containerStyle.edgePadding, size.width) + size.height = min(containerBounds.height - 2 * item.options.containerStyle.edgePadding, size.height) + let frame: CGRect if let corner = preferredSourceViewCorner { let minPadding = item.options.containerStyle.edgePadding