IOS开发(90)之动画视图的旋转

1 前言

今天我们来学习如何创建一个旋转仿射变换并使用 UIView 类的动画方法来执行旋转动作。

2 代码实例

ZYViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIImage *xcodeImage = [UIImage imageNamed:@"Xcode.png"];
    self.xcodeImageView = [[UIImageView alloc] initWithImage:xcodeImage];
    //设置图片的Frame
    [self.xcodeImageView setFrame:CGRectMake(0.0f,0.0f, 100.0f, 100.0f)];
    self.view.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:self.xcodeImageView];
}

- (void) viewDidAppear:(BOOL)paramAnimated{ [super viewDidAppear:paramAnimated];
    self.xcodeImageView.center = self.view.center;
    /* Begin the animation */
    [UIView beginAnimations:@"clockwiseAnimation" context:NULL];
    /* Make the animation 5 seconds long */
    [UIView setAnimationDuration:5.0f];
    [UIView setAnimationDelegate:self];
    //停止动画时候调用clockwiseRotationStopped方法
    [UIView setAnimationDidStopSelector:@selector(clockwiseRotationStopped:finished:context:)];
    //顺时针旋转90度
    self.xcodeImageView.transform = CGAffineTransformMakeRotation((90.0f * M_PI) / 180.0f);
    /* Commit the animation */
    [UIView commitAnimations];
}

- (void)clockwiseRotationStopped:(NSString *)paramAnimationID finished:(NSNumber *)paramFinished
                         context:(void *)paramContext{
    [UIView beginAnimations:@"counterclockwiseAnimation"context:NULL];
    /* 5 seconds long */
    [UIView setAnimationDuration:5.0f];
    /* 回到原始旋转 */
    self.xcodeImageView.transform = CGAffineTransformIdentity;
    [UIView commitAnimations];
}

运行结果

IOS开发(90)之动画视图的旋转_第1张图片

旋转90度

IOS开发(90)之动画视图的旋转_第2张图片

复原

IOS开发(90)之动画视图的旋转_第3张图片

3 结语

以上是所有内容,希望对大家有所帮助。

Demo代码下载:http://download.csdn.net/detail/u010013695/5381157

你可能感兴趣的:(IOS开发,IOS新手快速入门)