如何做IOS翻转贺卡

我正在开发一个应用程序,我必须打开像这样的video卡

卡的第一面卡的第三面卡的第二面卡的第四面

我GOOGLE了,但没有find任何代码这个function。

贺卡有四面。 我需要通过animation或UIGesturerecognizer来查看贺卡的每一面,只要点击或触摸就像在眨眼的应用程序。

任何人build议的想法或示例代码将不胜感激。

“提前致谢”

我已经为你写了这个代码。

*把这个放在.pch文件中

定义DEGREES_TO_RADIANS(d)(d * M_PI / 180)

并且不要忘记添加和导入QuartzCore框架*

#import "MyViewController.h" #import <QuartzCore/QuartzCore.h> @interface MyViewController (){ CATransform3D intialTransform; CATransform3D middelTransform; CATransform3D finalTransform; } @property(nonatomic,strong) UIView *myView1; @property(nonatomic,strong) UIView *myView2; @end @implementation MyViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; UIButton *myButton =[[UIButton alloc]initWithFrame:CGRectMake(300, 100, 120, 50)]; [myButton addTarget:self action:@selector(unfoldGreeting:) forControlEvents:UIControlEventTouchDown]; [myButton setTitle:@"Unfold" forState:UIControlStateNormal]; [myButton setBackgroundColor:[UIColor blackColor]]; [self.view addSubview:myButton]; _myView1 = [[UIView alloc]initWithFrame:CGRectMake(400, 200, 200, 300)]; [_myView1 setBackgroundColor:[UIColor redColor]]; [self.view addSubview:_myView1]; UILabel *myLabel = [[UILabel alloc]initWithFrame:CGRectMake(10, 150, 100, 100)]; [myLabel setText:@"Happy Birthday"]; [myLabel setFont:[UIFont fontWithName:@"Arial" size:25]]; [myLabel setTextColor:[UIColor whiteColor]]; [myLabel sizeToFit]; [_myView1 addSubview:myLabel]; intialTransform = CATransform3DIdentity; intialTransform.m34 = 1.0 / -500; intialTransform = CATransform3DRotate(intialTransform, DEGREES_TO_RADIANS(70), 1.0f, 0.0f, 0.0f); _myView1.layer.transform = intialTransform; _myView2 = [[UIView alloc]initWithFrame:CGRectMake(400, 200, 200, 300)]; [_myView2 setBackgroundColor:[UIColor purpleColor]]; [self.view addSubview:_myView2]; _myView2.layer.transform = intialTransform; middelTransform = CATransform3DIdentity; middelTransform.m34 = 1.0 / -500; middelTransform = CATransform3DRotate(middelTransform, DEGREES_TO_RADIANS(70), 1.0f, 0.0f, 0.0f); middelTransform = CATransform3DRotate(middelTransform, DEGREES_TO_RADIANS(-100), 0.0f, 1.0f, 0.0f); middelTransform = CATransform3DTranslate(middelTransform,116, 0,100); finalTransform = CATransform3DIdentity; finalTransform.m34 = 1.0 / -500; finalTransform = CATransform3DRotate(finalTransform, DEGREES_TO_RADIANS(70), 1.0f, 0.0f, 0.0f); finalTransform = CATransform3DRotate(finalTransform, DEGREES_TO_RADIANS(-170), 0.0f, 1.0f, 0.0f); finalTransform = CATransform3DTranslate(finalTransform,198, 0,16); } -(void)unfoldGreeting:(UIButton *)iSender{ [UIView animateWithDuration:1.0f animations:^{ _myView2.layer.transform = middelTransform; } completion:^ (BOOL iFinished) { [UIView animateWithDuration:1.0f animations:^{ _myView2.layer.transform = finalTransform; }completion:nil]; }]; } 

希望这会帮助你。