iPhone尝试使用块动画来模拟卡片翻转,但没有任何动静

时间:2011-09-28 13:59:35

标签: iphone

我正在尝试做一个卡片翻转动画......但没有任何反应。

这就是我的工作 1.创建一个容器视图,以保持两个视图的动画效果。 2.创建第一个视图。 3.将其添加到容器中。 4.创建第二个视图 3.启动动画块,开始动画 4.调用setAnimationTransition放入视图容器中 5.将第二个视图添加到视图容器中 6.提交动画,

我的代码

// create container view
CGRect  viewRect = CGRectMake(10, 10, 100, 100);
UIView* myView = [[UIView alloc] initWithFrame:viewRect];

// create 2 viues to flip between for animation
UIImage *i= [ UIImage imageNamed : @"card1.jpg"];
UIImageView *topCard=[ [UIImageView alloc] initWithImage: i ];
topCard.frame= CGRectMake(0,0,100,100);
[myView addSubview:topCard];
[self.view addSubview:myView];

i= [ UIImage imageNamed : @"card2.jpg"];
UIImageView *butCard=[ [UIImageView alloc] initWithImage: i ];
butCard.frame= CGRectMake(0,0,100,100);

// set up the animation
[UIView beginAnimations:@"Flip Top Card" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationRepeatCount:0];
[UIView setAnimationRepeatAutoreverses:NO];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut ];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:myView cache:YES];
[myView addSubview:butCard];

// start the animation
[UIView commitAnimations];   

-Ted

1 个答案:

答案 0 :(得分:6)

如果这是iOS 4.0或更高版本,您可以执行以下操作:

[UIView transitionWithView:myView
                  duration:0.3f
                   options:UIViewAnimationOptionTransitionFlipFromLeft
                animations:^(void) {
                  self.topCardIsShown = !self.topCardIsShown;
                  self.topCard.hidden = !self.topCardIsShown;
                  self.butCard.hidden = self.topCardIsShown;
                }
                completion:^(BOOL finished) {
                  // nothing
                }];

这假设您已将两个卡片视图添加到myView,并为您的班级添加了@property(nonatomic, assign) BOOL topCardIsShown;