1

NavigationViewControllerナビゲーションバーがトランジションを制御する上部のスワイプ可能なバーであるカスタマイズされたものを作成しようとしています(UITabBarControllerボタンではなくスワイプジェスチャで考えてください)。これが簡単なモックアップです。粗末で申し訳ありません

ScrollView としてヘッダー バーを設定しました。scrollViewDidScrollメソッドを使用して、スクロール量を正常に検出できました。というわけで、ヘッダーバー部分を装備しました。scrollViewDidScroll次に、メソッドに遷移の動きを実装する必要があります。

ビューコントローラーを相互に埋め込む方法についてAppleドキュメントを調べましたが、これを行う方法を説明するのに実際には役立ちませんでした。ドキュメントにはaddChildViewController:、ビューコントローラーを非表示にしてすぐに再表示したい場合に適したメソッドと他のメソッドの呼び出しが記載されていますが、このシナリオではインタラクティブに実行するのが難しいと感じています。

現在の VC のスナップショットを作成してから移動しますか? しかし、いったい私は何を動かしているのだろうか?たとえば、図では、RedVC 全体を左に移動していますか? しかし、BlueVC がフレームの外から動き始めた場合、BlueVC のスナップショットを取得するにはどうすればよいでしょうか? BlueVC で画像を非同期的にロードしたい場合はどうすればよいですか? BlueVC が所定の位置にスナップされるまで、プレースホルダー付きのプレースホルダー スナップショットを使用する必要がありますか?

これはすべて非常に複雑になっています...私はこのようなことを個別に行いました(スナップショット、カスタムVCトランジションなど..)が、このような場合にそれらすべてを組み合わせることに十分に慣れていません. 十分な時間があれば、何らかの方法でハッキングできると確信していますが、最善で最もクリーンな方法を知りたいと思っています。

どんな助けにも感謝します!ありがとう。

@MilanNosáľの回答を受け入れた後に編集します。

このレポにリンクされている彼のフレームワークを使用することになりました。まだインタラクティブではありませんが、彼らが私のためにとても親切にしてくれたことを使って、残りを理解することができます. ここに完全なコードを投稿できればいいのですが、それはあまり実用的ではありません。リポジトリは、将来の SO 旅行者のために無期限に維持されます。

4

3 に答える 3