动画

作者: 哈酒拎壶冲 | 来源:发表于2016-02-27 11:44 被阅读155次

    哈喽大家好 今天我就写一写我学动画是做的笔记吧##

    首先建立viewController
    声明变量
    @proerty(weak,nonatomic)UIView *UIVIew
    动画的属性

    //开始动画
    [UIView beginAnimation:@"动画属性" context:nil];
    //setAnimationDuration设置动画的持续时间
    [UIView setAnimationDuration:2];
    //设置动画延迟时间
    [UIView setAnimationDelay:1];
    //设置重复次数
    [UIView setAnimaitionRepeatCount:3];
    //设置过度效果(动画效果控制)
    [UIView setAnimationCurve:UIVIewAnimationCurveEaseInout];
    这里有4种动画效果可用 只取一种用
    //设置代理
    [UIView setAnimationDelegate:self];
    //给动画开始的时候添加事件 (一定要先设置代理)
    [UIView setAnimationWillStartSelector:@selector(startAnimation)];
    //设置动画界面的位置
    _UIView.center = CGPointMake(300,70);
    //给动画结束的时候添加事件
    [UIView setAnimationDidStopSelector:@selector:(stopAnimation)];
    //结束动画
    [UIView commitAnimations];
    }```
    这是一个简单的动画
    
    设置动画快的事件
    ```[UIView setAnimationDelay:1];
    //一种方法
    [UIView animationWithDuration:1 animations:^{
    //动画进行时需要的操作
    _UIView.backgroundColor = [UIColor yellowColor];
    }];
    //第二种方法
    [UIView animationDuration:2 animations:^{
    //动画进行时需要的操作
    }
    completion:^(BOOL finished){
    //动画结束时需要的操作
    }]
    //第三种
    [UIView animationDuration:2 delay:1 options:UIViewAnimationOptionAutoreverse animations:^{
    //设置循环次数
    [UIView setAnimationRepeatCount:4];
    //动画进行时的事件
    }completion;^(BOOL finish){
    //动画结束时需要的操作
    }];```
    
    2D仿射变换
    ```[UIView beginAnimations:@"2D仿射变换" context:nil];
    //动画持续时间
    [UIView setAnimationDuration:2];
    //动画重复次数
    [UIView setAnimationRepeat:4];
    // 旋转
    //基于原始位置旋转
    _UIView.transform = CGAffineTransformMakeRotation(M_PI_2/3);
    //基于上一次旋转
    _UIView.transform = CGAffineTransformRotate(_UIView.transform,M_PI_2/3);
    // 缩放
    //平面缩放
    _UIView.transform = CGAffineTransformScale(3,0.5);
    //旋转缩放
    _UIView.transform = CGAffineTransformMake(-1,cos(M_PI_2),3,sin(M_PI_4),1,1);```
    
    下边写下关于动画抖动的代码
    ```CABasicAnimation *basic = [CABasicAnimationWithKeyPath:@"bounds.size"];
    CGSize fromSize = CGSizeMake(100,100);
    CGSize toSize = CGSizeMake(20,200);
    //设置初始值
    basic.fromValue = [NSValue valueWithCGSize:fromSize];
    basic.fromValue = [NSValue valueWithSize:toSize];
    //动画只是一个效果 不会改变属性的值,若想要改变属性的值,需要我们手动改变
    CGRect newRect = _UIView.layer.bounds;
    newRect.size = toSize;
    _UIView.layer.bounds = NewRect;
    [_UIView.layer addAnimation:basic forKey:@"test"];
    //取出UIView的layer层
    CALayer *myLayer = _UIView.layer;
    //获取layer位置
    CGpoint position = mylayer.position;
    //设置晃动时俩个终点的位置
    CGPoint x1 = CGPointMake(position.x-10,position.y);
    CGPoint x2 = CGPointMake(position.x+10,position.y);
    //设置动画
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
    //设置开始位置
    [animation setFromValue:[NSValue valueWithCGPoint:x1]];
    //设置结束位置
    [animation setToValue:[NSValue valueWithCGPoint:x2]];
    //设置自动翻转
    [animation setAutoreverses:YES];
    //设置持续时间
    [animation setDuration:0.06];
    //设置重复次数
    [animation setRepeatCount:4];
    //添加动画
    [myLayer addAnimation:animation forkey:@"test"];```
    
    这就是我学习的时候总结的一些笔记了

    相关文章

      网友评论

        本文标题:动画

        本文链接:https://www.haomeiwen.com/subject/pjswkttx.html