我正在使用自定义转换和自定义 UIPresentationController
呈现一个 UIViewController
。 View Controller 的 View 不会覆盖整个屏幕,因此呈现 View Controller 仍然可见。
接下来,我在这个 View Controller 的顶部展示了一个 UIImagePickerController
的实例。问题是,当我关闭图像选择器时,呈现 View Controller 的框架会覆盖整个屏幕,而不仅仅是我希望它覆盖的部分。在我的自定义 UIPresentationController
中由 frameOfPresentedViewInContainerView
指定的框架似乎被完全忽略了。
只有当图像选择器显示 UIModalPresentationOverCurrentContext
的 modalPresentationStyle
时,我的框架才会保持完整(这是有道理的,因为首先没有 View 从 View 层次结构中删除) .不幸的是,这不是我想要的。我希望图像选择器全屏显示,无论出于何种原因,这似乎弄乱了我的布局。我在这里可能做错或忘记的任何事情吗?有什么建议吗?
最佳答案
我尝试了提到的两种包装方法。使用这种包装方法的一个副作用是设备旋转显示不佳 - 在呈现的 View 周围引入黑框。
尝试将呈现的 UIImagePickerController
的 modalPresentationStyle
设置为 UIModalPresentationOverFullScreen
,而不是使用环绕技巧。这意味着图像选择器下的 View 在呈现/关闭期间不会从 View 层次结构中删除/恢复。
关于ios - 解除模态呈现的 View Controller 时框架不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37949619/