8

我正在使用自定义 UIPresentationController 子类来管理 UIViewController 的呈现。我正在重写- (CGRect)frameOfPresentedViewInContainerView以提供一个从 containerView 的边界插入的框架。

现在,在对presentedViewController 进行一些用户操作之后,我想更改presentViewController 的框架。我的问题是:有没有一种“自然”的方式来做到这一点?

呈现后如何调整呈现的视图控制器的框架?

4

2 回答 2

10

所以我这样做的方法是执行以下操作:

我添加了以下方法<UIContentContainer>

- (void)preferredContentSizeDidChangeForChildContentContainer:(id <UIContentContainer>)container 

然后我简单地更新了我的presentedViewController 上的preferredContentSize,得到了回调,并在UIPresentationController 中动画帧更新。

于 2016-02-22T15:40:46.647 回答
-1
  1. 在财产中保留 NAV 或 VC 的实例(保存)
  2. 以某种 x 大小呈现(也可以在 modalPresentationStyle 中更改为 popover/fullscreen )
  3. [用户操作后] 关闭呈现的导航或 vc
  4. 当前保存的 VC/NAV 即更改为 Y 大小后(可以)

存储实例意味着再次出现在同一个地方。

使用如下适当的动画滚动来平滑过渡

vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

于 2016-02-22T07:37:21.883 回答