我正在尝试做一个卡片翻转动画......但没有任何反应.
这就是我做的1.创建一个容器视图,以保持两个视图的动画效果.2.创建第一个视图.3.将其添加到容器中.4.创建第二个视图3.启动动画块,beginAnimations 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];
Run Code Online (Sandbox Code Playgroud)
-Ted
如果这是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
}];
Run Code Online (Sandbox Code Playgroud)
这假设您已将两个卡片视图添加到myView,并已向@property(nonatomic, assign) BOOL topCardIsShown;您的类添加了一个.
| 归档时间: |
|
| 查看次数: |
894 次 |
| 最近记录: |