开发者

UIImageView animated rotation

I would like to rotate an UIImageView clockwise around his center after pressing a button (360 degrees)... It should be an animation... So its getting a steering wheel, and it should rotate by itself visible for the user...

I saw there are many ways to do that, but nothing worked for开发者_开发技巧 me... :-)

The CABasicAnimation, do I have to add a framework for this?

Could someone give me a sample code, for rotating an UIImageView around its center for (360 degrees) that works?!?

thank you in advance


Hear given below i do same thing ...... but my requirement is when touchBegin that View will be rotate 360 degree ... it may help to you.....

 - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {

    self.userInteractionEnabled=YES;
[UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
[UIView setAnimationBeginsFromCurrentState:NO];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self   cache:YES];
   [UIView commitAnimations];
  [delegate changeImage:self];

 }
 -(void)changeImage:(DraggableImages *)selectedView
 {
count++;
clickCounter++;
counterLable.text=[NSString stringWithFormat:@"%i",clickCounter];
selectedView.image=[images objectAtIndex:selectedView.tag];
if (count==1) {
    firstSelectedView=selectedView;
}
if (count==2) {
    self.view.userInteractionEnabled=NO;
    secondSelectedView=selectedView;
    count=0;
    [self performSelector:@selector(compareImages) withObject:nil     afterDelay:0.7];
}

}
  -(void)compareImages
 {
if (firstSelectedView.tag==secondSelectedView.tag) 
{
    matches++;
    //NSLog(@"%@",matches);
    Score=Score+10;
    scoreLable.text=[NSString stringWithFormat:@"%d",Score];

    firstSelectedView.alpha=0.5;
    secondSelectedView.alpha=0.5;
    self.view.userInteractionEnabled=YES;
    if(matches==[images count])
    {

        [timer invalidate];
        UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil message:[NSString stringWithFormat:@"Do you want to countinue?"] delegate:self cancelButtonTitle:nil otherButtonTitles:@"YES",@"NO", nil];
        [alertView show];
        [alertView release];

    } 
}

else {
    Score=Score-1;
    scoreLable.text=[NSString stringWithFormat:@"%d",Score];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationBeginsFromCurrentState:NO];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:firstSelectedView cache:YES];
    firstSelectedView.image=[UIImage imageNamed:@"box.jpg"];
    [UIView commitAnimations];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationBeginsFromCurrentState:NO];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:secondSelectedView cache:YES];
    secondSelectedView.image=[UIImage imageNamed:@"box.jpg"];
    [UIView commitAnimations];
    firstSelectedView.userInteractionEnabled=YES;
    secondSelectedView.userInteractionEnabled=YES;
    self.view.userInteractionEnabled=YES;





}

}


You need to add the QuartzCore framework, and you can read more about CABasicAnimation.

Some Tutorials

Interrupting Animation Progress

Slider Based Layer Rotation

CABasicAnimation basics

Core Animation Paths


Upon button press invoke this method:

- (void) animate{

CABasicAnimation *imageRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
imageRotation.removedOnCompletion = NO; // Do not turn back after anim. is finished
imageRotation.fillMode = kCAFillModeForwards;

imageRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];

imageRotation.duration = 1.5;
imageRotation.repeatCount = 1;

[yourImageView.layer setValue:imageRotation.toValue forKey:imageRotation.keyPath];
[yourImageView.layer addAnimation:imageRotation forKey:@"imageRotation"];

}

and yes as WrightsCS has stated, you will need QuartzCore framework included in your project. Dont forget the import statement:

#import <QuartzCore/QuartzCore.h>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜