2010-12-08 8 views
4

ビュー遷移を左から右にアニメートする方法(同様のプッシュビュー)。ボタンをクリックすると、ビューは左から右に移ります。だから私を案内して、いくつかのサンプルリンクを与えてください。iPhoneのビューを左から右にアニメートする方法は?

ありがとうございました。

答えて

3

view1を置き換えるためにview2を右から押したいとします。あなたもVIEW1をリリースしたいとに応じて、ゼロへの参照を設定しているアニメーションデリゲートメソッドで

- (void) pushAnimationDidStop: (NSString *) animationID finished: (NSNumber *) finished context: (void *) context { 
    [view1 removeFromSuperview]; 
} 

// Set up view2 
view2.frame = view1.frame; 
view2.center = CGPointMake(view1.center.x + CGRectGetWidth(view1.frame), view1.center.y); 
[view1.superview addSubview: view2]; 
// Animate the push 
[UIView beginAnimations: nil context: NULL]; 
[UIView setAnimationDelegate: self]; 
[UIView setAnimationDidStopSelector: @selector(pushAnimationDidStop:finished:context:)]; 
view2.center = view1.center; 
view1.center = CGPointMake(view1.center.x - CGRectGetWidth(view1.frame), view1.center.y); 
[UIView commitAnimations]; 

は、次に(オプション)ビュー階層からVIEW1を削除するには、このメソッドを実装します移行後にそれを維持する必要があるかどうか。ここで

はサンプルです:あなたは別のオプションは、コードの以下の行を持つアニメーション用と簡単にするためにブロックを使用することである

CATransition *transition = [CATransition animation]; 
    transition.duration = 0.4; 
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
    transition.type = kCATransitionPush; 
    transition.subtype = kCATransitionFromLeft; 
    [self.view.window.layer addAnimation:transition forKey:nil]; 
    [self presentViewController:YOUR_VIEWCONTROLLER animated:YES completion:nil]; 
+0

回答ありがとうございます。ありがとうたくさん....... – Pugal

+0

私はこれが古いと知っていますが...私は論理に従おうとしています。これが何をしているのか、少し混乱しています。誰かがそれを説明することはできますか? – marciokoko

+0

@marciokokoこのコードは、view1の右側にview2を配置し、ビューのスライドを左にアニメーション化して(view2がview1を置き換えるように)、アニメーションの実行後にview1を削除します。彼らはそれを「プッシュ移行」と呼びます。 – Costique

1

CGRect viewLeftRect;//final frames for left view 
CGRect viewRightRect;//final frames for right view 

[UIView animateWithDuration:0.3f animations:^{ 
    [viewLeft setFrame:viewLeftRect]; 
    [viewRight setFrame:viewRightRect]; 
} completion:^(BOOL finished) { 
    //do what ever after completing animation 
}]; 
1

コードの下にブロックを使用することができます左から右へアニメーション化

0

あなたはまた、次のように右から左にアニメーションを追加することができます。

scrAnimation.frame=CGRectMake(248, 175, 500, 414); //your view start position 

    [UIView animateWithDuration:0.5f 
          delay:0.0f 
         options:UIViewAnimationOptionBeginFromCurrentState 
        animations:^{ 
         [scrAnimation setFrame:CGRectMake(0, 175, 500, 414)]; // last position 
        } 
        completion:nil]; 
関連する問題