gpt4 book ai didi

ios8 - 当另一个 View Controller 显示在它上面时,UIPresentationController 会改变大小

转载 作者:行者123 更新时间:2023-12-04 13:18:57 25 4
gpt4 key购买 nike

我正在使用 UIPresentationController 展示一个模态视图 Controller 。我使用以下方法将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)
}

到目前为止,一切都很好。

现在,我在当前显示的模态视图 Controller 之上以模态方式(默认不是自定义)呈现另一个 View Controller ,它占据了整个屏幕。因此,我在覆盖整个屏幕的默认模态视图 Controller 下方有一个自定义模态视图 Controller 。

问题是当我关闭覆盖整个屏幕的顶 View Controller 时,我的自定义 View Controller 也会显示覆盖整个屏幕。我希望我的自定义 View Controller 的大小保持不变(小于 containerView)。有什么办法可以做到这一点。

任何帮助,将不胜感激

最佳答案

我遇到了同样的问题。我无法通过添加约束来解决它,-[UIPresentationController containerViewWillLayoutSubviews]调用太晚(在关闭动画完成后)。

一段时间后,我发现问题似乎是当您使用默认 UIModalPresentationFullScreen 呈现时,呈现 Controller View 正在从 View 层次结构中删除。 presentationStyle并在必须再次显示时以全屏尺寸再次添加。

在 iOS 8 中,您可以使用 UIModalPresentationOverFullScreen作为 presentationStyle从较小的 Controller 演示时。系统不会自动移除呈现 Controller 的 View 。 (-[UIViewController viewWillDisappear:] 等,当您执行此操作时,不会在呈现 Controller 上调用)

您也可以使用UIModalPresentationCustom这在 iOS 7 中可用,但是您必须提供自己的过渡动画。

关于ios8 - 当另一个 View Controller 显示在它上面时,UIPresentationController 会改变大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com