8

カスタム UIPresentationController サブクラスを使用して、UIViewController のプレゼンテーションを管理しています。- (CGRect)frameOfPresentedViewInContainerViewcontainerView の境界からはめ込まれたフレームを提供するためにオーバーライドしています。

ここで、presentedViewController に対するユーザー アクションの後、presentedViewController のフレームを変更したいと思います。私の質問は次のとおりです。これを行う「自然な」方法はありますか??

提示された後にpresentedViewControllerのフレームを調整するにはどうすればよいですか?

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 に答える