15

Evernote の iOS アプリでの遷移と非常によく似た、View Controller 間の遷移を実現することに興味があります。

ここに画像の説明を入力

「Places」をタップすると、緑色の枠で囲まれた UINavigationController のようにスムーズに展開されます。折りたたむには、「戻る」をタップするか、画面の左側からスワイプして徐々にホーム画面に遷移します。

コピーして貼り付けるための正確なコード サンプルを探しているわけではありません。むしろ、どの概念と Apple API を活用するかについての高レベルのガイダンスを求めています。すなわち、

  • これはどのトランジション/アニメーション API を使用する可能性がありますか?
  • 「Places」が展開されたら、View Controller全体の周りに緑色の境界線を表示するにはどうすればよいですか?
4

3 に答える 3

1

考慮すべきアプローチ:UICollectionViewを 2 つの異なるレイアウトで使用できます。展開されていないレイアウトは単なる でUICollectionViewFlowLayoutあり、展開されたレイアウトは、展開したいセルを除くすべてのセルを縮小/フェードするサブクラスである可能性があります。次にsetCollectionViewLayout:animated:、それらを切り替えるために使用できます。

これにはUINavigationController.

また、展開されたレイアウトから戻るためにインタラクティブなスワイプ ジェスチャが必要な場合はUIScreenEdgePanGestureRecognizer、インタラクティブなコレクション ビュー レイアウト アニメーションに接続します (「 」を参照startInteractiveTransitionToCollectionViewLayout:completion:)。

于 2015-03-08T05:07:27.833 に答える
1

全画面表示の場所の境界線から判断すると、それは 1 つではUINavigationControllerなく、それらの間のカスタム遷移を持つ 2 つのビュー コントローラーであると言えます。

これは iOS7 で導入されたもので、オンラインでカスタム トランジションを実装するためのチュートリアルをいくつか見つけることができます。

http://www.objc.io/issue-12/custom-container-view-controller-transitions.html

https://developer.apple.com/library/IOs/documentation/UIKit/Reference/UIViewControllerTransitioningDelegate_protocol/index.html

于 2014-11-26T02:07:09.027 に答える