2009-06-24 15 views

答えて

6

あなたが必要です:有効にページングと

  1. A ScrollView、3つの画面広いです。
  2. L(左のコンテンツ、0,0)、C(中央のコンテンツ、320,0)、R(右のコンテンツ、640,0)のスクロールビューに3つのサブビューを作成する。 Cは最初に表示したいコンテンツです。 Lは、ユーザが左にスクロールした場合に表示されるコンテンツです。
  3. スクロールビューのcontentoffsetを320に設定します(ポートレートモードの場合)。CをLではなく最初に表示するようにします。
  4. スクロールが終了するたびに、contentoffsetは整数倍の画面になります。あなたがまだC(contentoffsetが320)を表示しているなら、あなたは大丈夫です。 contentoffsetが0または640になっている場合は、少し作業が必要です。ユーザーがスクロールが残っている場合

- contentoffsetが0であるため、あなたは今ではすべてのコンテンツをリセットする必要があります0のscrolloffsetで、あなたは同じビュー階層を持っていますが、今scrollviewはむしろCよりもLを示していますあなたはXLCと320のスクロールセットを持っています - ユーザが再び左にスクロールしたい場合つまり、Cは新しいRになり、Lは新しいCになり、Xはユーザーが再び左にスクロールすると表示する新しいコンテンツになります。

これを行うためにオーバーライドする方法は次のとおりです。

(void)scrollViewDidEndDecelerating:(UIScrollView*)scrollView 
+0

すばやく返信いただきありがとうございます! :) –

0

私はタイプkCATransitionPushで、CATransitionを使用してこれを行うだろう。

CATransition *animation = [CATransition animation]; 
[animation setType:kCATransitionPush]; 
[animation setSubtype:kCATransitionFromRight]; //or ...FromLeft, as the case may be 

これまでのところ、他の手法よりもCATransitionsの方が優れていますが、それはいくつかの要因によって変わる可能性があります。

トランジションを行うビューを作成する方法の例については、AppleのサンプルコードでTransitionViewクラスをご覧ください。そのクラスでは次のことができます:

- (void)replaceSubview:(UIView *)oldView withSubview:(UIView *)newView transition:(NSString *)transition direction:(NSString *)direction duration:(NSTimeInterval)duration; 
+0

ありがとうございます!私は両方を試してみて、私が好きなものを見ます。 –

関連する問題