2012-01-23 16 views
0

現在、私のiPhoneアプリケーションに表示されているUIViewControllerがあり、ユーザーがボタンをタップすると表示する2番目のViewControllerがあります。UIViewControllerを別のビューにスライドさせる

しかし、私はそれを変更したいと思います。ユーザーがネイティブフォトアプリの写真をスライドしているかのように、ユーザーが指をスライドさせると、2番目のビューコントローラーが右側に表示されるようにしたいと思います。

どうすればいいですか? 2番目のUIViewControllerが既に作成され割り当てられていると仮定しましょう。私は必要があると思います

1) Determine when the user is sliding their finger using some touchesBegan function 
2) Somehow display only a portion of the second view controller as the user slides their finger across. 

これらのいずれかのアイデアはありますか?私はこれを行う方法がわからないのですか?

答えて

3

pagesEnabledプロパティをYESに設定してUIScrollViewを使用します。これがAppleの天気アプリを実装する方法です。

次に、スクロールビューの各ページについて、ビューコントローラのビューをスクロールビューのサブビューとして追加します(フレームが正しく設定されているため、すべてが重なって表示されません)。下から上にUIViewのをスライドさせる

+0

+1 - これが行く方法です。 UIViewControllerの数が多い場合は、一度に(現在、前、次の)メモリ内のいくつかのものだけを残すことが賢明である必要があります。 UIのスムーズさを可能にするバックグラウンドスレッドで新しいコントローラのインスタンスを作成したいので、これは非常に複雑になり始めます。最終的には、これが余分な苦痛の価値があるかどうかを尋ねる必要があります。あるいは、単にUINavigationControllerとsetViewControllers:animated:をSwipe Gesture Recognizerで使用して同様の効果を得ることができます。 – ikuramedia

0

UIPageViewControllerを参照してください。それはあなたが探しているクラスのように聞こえる。 (Docs here

+0

が、これは私がjbrennanのソリューションが何であるか@で、画面の一番下、上の小さな青いドットずに私が欲しいものを達成することができますか? – CodeGuy

+0

@ jbrennanの解決策では「小さな青い点」が作成されません。青い点は 'UIPageControl'クラスを使って作成されます。サポートされているのはPageCurl(ala iBooks)のみで、質問に必要なスライディングスタイルではないという点を除いて、 'UIPageViewController'があります。 +1 @ jbrennanの解決策、それは私が自分のアプリに行ったのと同じルートです。 – ikuramedia

+0

UIPageViewControllerは、遷移のスライドスタイルをサポートしています。 AppleのPhotoScrollerサンプルコードを見てください。 – Kenshi

0

次のコードを使用:

myViewController *obj = [[myViewController alloc] init]; 
[self presentModalViewController:obj animated:YES]; 
関連する問題