【发布时间】:2015-09-25 23:56:01
【问题描述】:
我正在使用 UIPresentationController 展示一个模态视图控制器。我使用以下方法将presentView的框架设置为小于containView的边界:
override func frameOfPresentedViewInContainerView() -> CGRect {
let myDX = (self.containerView!.bounds.width - 600)/2
let myDY = (self.containerView!.bounds.height - 600)/2
return self.containerView!.bounds.insetBy(dx: myDX, dy: myDY)
}
到目前为止,一切都很好。
现在,我在当前显示的模态视图控制器顶部以模态方式(默认不是自定义)呈现另一个视图控制器,它占据了整个屏幕。因此,我在覆盖整个屏幕的默认模态视图控制器下方有一个自定义模态视图控制器。
问题是当我关闭覆盖整个屏幕的顶视图控制器时,我的自定义视图控制器也会显示覆盖整个屏幕。我希望我的自定义视图控制器的大小保持不变(小于 containerView)。有什么办法可以做到这一点。
任何帮助将不胜感激
【问题讨论】:
-
也许您可以使用 autoLayout 而不是硬编码框架尺寸?
-
在 iOS 12 中,我可以通过将
presentationStyle更改为overCurrentContext而不是currentContext来解决此问题
标签: ios8 uikit uipresentationcontroller uitraitcollection uikit-transitions