动画一些常用的方法记录



- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    
     __weak typeof (self) pSelf = self;
   // 第一个参数代表的是动漫的时间
   // block块里面代表的是执行的动画
    [UIView animateWithDuration:2.0f animations:^{
        pSelf.myView.frame = CGRectMake(100, 100, 200, 200);
        pSelf.myView.backgroundColor = [UIColor purpleColor];
                 //改变bounds 的时候也可以执行动画, 但是是以示图的cente为中心向两边扩充
        pSelf.myView.bounds = CGRectMake(0, 0, 200, 200);
        pSelf.myView.center = pSelf.view.center;
                pSelf.myView.alpha = 0.1;

    }];

    //第一个参数代表时间
    //第二个block块代表执行的动画
    //第二个block快代表动画完成
    
[UIView animateWithDuration:1.0f animations:^{
    pSelf.myView.backgroundColor = [UIColor grayColor];
}completion:^(BOOL finished) {
    // 这里的代码 不会被当作动画执行
    pSelf.myView.backgroundColor = [UIColor redColor];
}];

    
    // 第一个参数 代表的是执行时间
    // 第二个参数 代表的是延迟多久执行
    // 第三个参数 代表的是动画的一些特效
    
    [UIView animateWithDuration:2.0f delay:1.0f options:UIViewAnimationOptionRepeat animations:^{
        pSelf.myView.backgroundColor = [UIColor purpleColor];
    } completion:^(BOOL finished) {
        pSelf.myView.backgroundColor = [UIColor redColor];
    }];
    
    
   //usingSpringWithDamping代表的是阻尼系数, 取值范围是0~1.值越大 效果越小; 值越小 效果越明显
    
    
    [UIView animateWithDuration:1.0f delay:0 usingSpringWithDamping:0.01 initialSpringVelocity:25 options:UIViewAnimationOptionRepeat animations:^{
        pSelf.myView.frame = CGRectMake(200, 200, 100, 100);
    } completion:^(BOOL finished) {
        
        
        
    }];
 

//
     //第一个参数: 代表的是动画的名字
     //第二个参数: 代表的是一个上下文相关的,目前没有用 以后不确定
    
   [ UIView beginAnimations:nil context:nil];
    
    
  // 从当前状态开始
    [UIView setAnimationBeginsFromCurrentState:YES];
    
    //设置动画在出现和结束的时候的一些特效
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
    
     //设置动画的执行时间
    [UIView setAnimationDuration:3.0f];
   // 设置动画的重复次数
    [UIView setAnimationRepeatCount:100];
    // 设置动画代理人
    [UIView setAnimationDelegate:self];

    //动画将要开始 会执行sel方法
   // UIView setAnimationWillStartSelector:@selector(selector);
    //动画将要开始 会执行sel方法

    
    self.myView.frame = CGRectMake(100, 100, 200, 200);
    
    // 改交动画 去执行动画
    [UIView commitAnimations];
    
    
   // 第一个参数 要变没的view
    //第二个参数 要变出来的view
   // 第三个参数 要变出来的动作
    // 第四个参数

    [UIView transitionWithView:self.view duration:1.0f options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
        if (pSelf.controllerView.superview == nil) {
            [pSelf.tableView removeFromSuperview];
            [pSelf.view addSubview:_controllerView];
        }else{
            [pSelf.controllerView removeFromSuperview];
            [pSelf.view addSubview:_tableView];
            
            }
        
    } completion:^(BOOL finished) {
        
    }];
    


- (void)viewDidLoad {
    [super viewDidLoad];
    self.myView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    self.myView.backgroundColor = [UIColor redColor];
    [self.view addSubview:self.myView];
    //核心动画
    //可以path的参数 必须时候在calayer类里面的属性 而且在属性的注释里面是有 animatable 这个单词的才可以使用
  //  CABasicAnimation *BA = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
//动画持续时间
  //  BA.duration = 2.0f;
    //设置动画开始值
  // BA.fromValue = @(0);
//设置动画结束的值
   // BA.toValue = @(M_PI / 2 );
    //核心动画一定要添加到layer里面
    //第一个参数 代表的是哪一部分动画
    //第二个参数 代表的随便的一个key值 这个可以可以任何值 会在移除的时候用
  //  [_myView.layer addAnimation:BA forKey:@"base"];
    //相关的一组动画
//    CAKeyframeAnimation *keyFA = [CAKeyframeAnimation animationWithKeyPath:@"position"];
//   // keyFA.duration = 5.0f;
//    //重复次数
//   // keyFA.repeatCount = 10;
//    //如果设置的属性是结构体类型的, 要把结构体构建成一个nsvalue
//    NSValue *value = [NSValue valueWithCGPoint:CGPointMake(0, 0)];
//    NSValue *value2 = [NSValue valueWithCGPoint:CGPointMake(100, 100)];
//    NSValue *value3 = [NSValue valueWithCGPoint:CGPointMake(0, 300)];
//    NSValue *value4 = [NSValue valueWithCGPoint:CGPointMake(300, 400)];
//    NSValue *value5 = [NSValue valueWithCGPoint:CGPointMake(0, 400)];
//    
//    keyFA.values = @[value,value2,value3,value4,value5];
//    [self.myView.layer addAnimation:keyFA forKey:@"base1"];
//    
//    
//    CAKeyframeAnimation *keyFA1 = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];
//    keyFA1.duration = 20;
//    keyFA1.repeatCount = 10;
//    id color1 = (id)[UIColor redColor].CGColor;
//    id color2 = (id)[UIColor blueColor].CGColor;
//    id color3 = (id)[UIColor purpleColor].CGColor;
//    id color4 = (id)[UIColor redColor].CGColor;
//    id color5 = (id)[UIColor blueColor].CGColor;
//    id color6 = (id)[UIColor blackColor].CGColor;
//    id color7 = (id)[UIColor yellowColor].CGColor;
//    id color8 = (id)[UIColor whiteColor].CGColor;
//    
   //keyFA1.values = @[color1,color2,color3,color4,color5,color6,color7,color8];
//    [self.myView.layer addAnimation:keyFA1 forKey:@"base2"];
    //播放一组没有相关联的动画
//    CAAnimationGroup *group = [CAAnimationGroup animation];
//    group.animations = @[keyFA,keyFA1];
//    group.duration = 10.0;
//    group.repeatCount = 10;
//    
//    [self.myView.layer addAnimation:group forKey:@"base2"];
//    
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{  //视图切换的效果
    CATransition *transition = [CATransition animation];
    
    transition.duration = 1.0f;
    //代表的是 动画的效果
    transition.type = @"suckEffect";
    //代表的是 动画的方向
    transition.subtype = kCATransitionFromBottom;
    
    [self.myView.layer addAnimation:transition forKey:@"key"];

}



学习的一些知识点 记录下来!请勿喷。有不对的地方请大神留言指导!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值