我正在使用 UIPresentationController,但我无法弄清楚如何让它以我想要的方式显示。

我正在编辑 frameOfPresentedViewInContainerView() 函数,我需要返回框架(一个 CGRect)来显示我的内容。

我遵循的教程使用 CGRectInsert(self.containerView.bounds, 50, 50) ,它使窗口以 50px 的边框居中。如果我返回 self.containerView.bounds 就像它本身一样, View 会占据整个屏幕。

我希望覆盖 View 是父 View 的宽度(所以, self.containerView.bounds.width ),但我希望高度是显示新 View 内容所需的大小,而不会切断任何东西。

我在 (0,0) 处尝试了一个 CGRect,其宽度和高度来自 self.preferredContentSize,但它没有返回有效的尺寸。我该怎么办?

我尝试 frame = CGRect(x:0, y: self.containerView.bounds.height/2, width: self.containerView.bounds.width, height: self.containerView.bounds.height/2) 只是作为测试(但这只是使 View 大小为父 View 的一半),但是当我旋转屏幕时,突然新 View 几乎不在屏幕上..

最佳答案

除了 frameOfPresentedViewInContainerView() ,我还必须添加以下内容才能使其工作。

- (void)containerViewWillLayoutSubviews
{
    self.presentedView.frame = [self frameOfPresentedViewInContainerView];
}

关于ios - UIPresentationController - 演示 View 大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29246496/

10-13 03:38