4

可読性アプリに見られるように、スライドする UIViewController をエミュレートしようとしています。ページを右にドラッグすると、スタックから現在のビューがポップされ、画像のようにスライド アニメーションで親 UIViewController に戻ります。一番右のビューが一番上にあり、右方向にドラッグされ、左が元のテーブル。

右にスライドしたビュー

私はECSlidingViewControllerなどのいくつかのslideUIViewControllerソリューションを試しましたが、それらはslideUIViewControllerを別の上に部分的にスライドさせるFacebook/Pathの動作をエミュレートしようとしますが、これは読みやすさが行うことではありません。

標準の水平スクロール UIScrollView も試しましたが、あるビューを別のビューにスライドさせるのではなく、ページが横に結合されているようにスクロールします。

彼らがこれをどのように行ったか知っている人はいますか?

4

1 に答える 1

0

これは、いくつかの手順で簡単に実行できます。私はあなたがそれをするために書く必要があるすべてのコードを書き留めるつもりはありませんが、あなたがとる必要があるステップだけを書き留めます。マスター-詳細の用語を使用します。マスタービューは詳細ビューを表示する元のビューであり、詳細ビューはもちろんナビゲーションスタックの一番上にあります。

詳細ビューを表示する場合:

1)detailViewとの相互作用を処理するUIViewControllerのインスタンスを作成します。iOS 5以降では、このインスタンスをマスターのviewControllerのchildrenViewControllers@propertyに保存できます。下位OSをサポートしている場合は、インスタンスをivarに保存する必要があります。

2)detailViewのフレームを画面の境界の外側に設定します。グラフィカルな目的でdetailViewに影を追加します。最後に、masterViewのサブビューとしてdetailViewを追加します。

3)(オプション)ユーザーがビューをスワイプして元に戻して閉じることができるように、パンジェスチャレコグナイザーをdetailViewに追加します。

4)画面の境界でdetailViewをアニメーション化します。以下のビューとの相互作用が無効になっていることを確認してください(detailsViewとの相互作用も無効にしないように注意してください!)

詳細ビューを閉じたい場合:

1)画面の境界の外側でdetailViewをアニメーション化します。

2)スーパービューから削除し、viewControllerへの参照を削除します。

3)マスタービューとのユーザーインタラクションを再度有効にします。

于 2013-02-20T13:06:59.137 に答える