UIVIew Flip Vertical Animation

Given:

[UIView beginAnimations:nil context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; [UIView setAnimationDuration:.5]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:card cache:NO]; myPic = [UIImage UIImagenamed: @"mySecondImage.png"]; [UIView commitAnimations];[/CODE] 

What is the animation "myPic" from right to left with flip.

I need to get the same animation, but vertically. Flip over or flip below. I looked around, someone did not have a working model.

I tried this but no luck:

 float duration = .5; CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"]; animation.fromValue = [NSNumber numberWithDouble:0.0f * M_PI]; animation.toValue = [NSNumber numberWithDouble:1.0f * M_PI]; animation.duration = duration; animation.removedOnCompletion = NO; animation.fillMode = kCAFillModeBoth; animation.repeatCount =1;; animation.beginTime = CACurrentMediaTime(); animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; card.layer.anchorPoint = CGPointMake(0.5, 1.0); [card.layer addAnimation:animation forKey:@"rotationX"];[/CODE] 

Any input? Thanks in advance.

+4
iphone animation flip
Feb 28 '11 at 16:10
source share
1 answer

I also need to flip from the bottom animation. I put together a couple of solutions and it works for me.

 - (CATransform3D) makeRotationAndPerspectiveTransform:(CGFloat) angle { CATransform3D transform = CATransform3DMakeRotation(angle, 1.0f, 0.0f, 0.0f); transform.m34 = 1.0 / -500; return transform; } - (void) flipFromBottom { //setup firstView to be visible view1.layer.transform = CATransform3DMakeRotation(0, 1.0f, 0.0f, 0.0f); view1.hidden = NO; // setup secondView to be partialy rotated and invisible view2.layer.transform = [self makeRotationAndPerspectiveTransform:M_PI/2]; view2.hidden = YES; // making sure that both views have the same position view2.frame = view1.frame; CFTimeInterval duration = 2.0; [UIView animateWithDuration:duration/2 delay:0 options:UIViewAnimationCurveEaseIn animations:^{ view1.layer.transform = [self makeRotationAndPerspectiveTransform:-M_PI / 2]; } completion:^(BOOL finished){ view1.hidden = YES; view2.hidden = NO; [UIView animateWithDuration:duration /2 delay:0 options:UIViewAnimationCurveEaseOut animations:^{ view2.layer.transform = CATransform3DMakeRotation(0.0f, 1.0f, 0.0f, 0.0f); } completion:NULL]; }]; } 
+7
Sep 18 '11 at 17:12
source share



All Articles