iOS利用UIView实现渐变动画

来源:互联网 发布:初识seo ppt 编辑:程序博客网 时间:2024/06/06 03:19

UIView本身有一个类方法 animateWithDuration 可以简单实现动画效果

简单从平移、缩放、透明度三个方向,都是修改frame来实现

平移效果的实现代码

/** *  平移 */- (IBAction)translate {    // 渐变动画    // 方式一    /*    // 1. 开始动画    [UIView beginAnimations:nil context:nil];    [UIView setAnimationDuration:1.0];        // 2.动画代码    CGRect frame = self.animationView.frame;    frame.origin.y -= 50;    self.animationView.frame = frame;        // 3.提交动画    [UIView commitAnimations];     */        // 方式二:    /*    [UIView animateWithDuration:2.0 animations:^{        // 1.动画代码        CGRect frame = self.animationView.frame;        frame.origin.y -= 50;        self.animationView.frame = frame;    }];     */        /*    [UIView animateWithDuration:1.0 animations:^{        // 执行动画        CGRect frame = self.animationView.frame;        frame.origin.y -= 50;        self.animationView.frame = frame;    } completion:^(BOOL finished) {       // 动画完成做什么事情        self.animationView.backgroundColor = [UIColor blackColor];    }];     */    /*     UIViewAnimationOptionCurveEaseInOut  动画开始/结束比较缓慢,中间相对较快     UIViewAnimationOptionCurveEaseIn     动画开始比较缓慢     UIViewAnimationOptionCurveEaseOut    动画结束比较缓慢     UIViewAnimationOptionCurveLinear     线性---> 匀速     */    [UIView animateWithDuration:1.0 delay:1.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{                CGRect frame = self.animationView.frame;        frame.origin.y += 50;        self.animationView.frame = frame;            } completion:^(BOOL finished) {        self.animationView.backgroundColor = [UIColor greenColor];    }];}


缩放效果

/** *  缩放 */- (IBAction)scale {        [UIView animateWithDuration:1.0 delay:1.0 options:UIViewAnimationOptionCurveEaseIn animations:^{        // 执行动画        CGRect frame = self.animationView.frame;        frame.size = CGSizeMake(100, 150);        self.animationView.frame = frame;            } completion:^(BOOL finished) {        //动画完成        [UIView animateWithDuration:2.0 animations:^{            self.animationView.alpha -= 0.9;        }];    }];}


透明度的修改

/** *  透明度动画 */- (IBAction)alpha {    [UIView animateWithDuration:1.0 delay:0.5 options:UIViewAnimationOptionCurveEaseOut animations:^{        // 执行动画        self.animationView.alpha -= 0.9;    } completion:^(BOOL finished) {        // 动画完成做什么事情       [UIView animateWithDuration:2.0 animations:^{           self.animationView.alpha += 0.9;       }];    }];}











原创粉丝点击