zoukankan      html  css  js  c++  java
  • ios开发核心动画七:核心动画与UIView动画的区别

    /**
      UIView与核心动画区别?(掌握)
     
       1.核心动画只作用在layer.
       2.核心动画看到的都是假像,它并没有去修改UIView的真实位置.
     
       什么时候使用核心动画?
       1.当不需要与用户进行交互,使用核心动画
       2.当要根据路径做动画时,使用核心动画:CABasicAnimation,CAKeyFrameAnimation,两个都可以根据绘制的路径UIBizerPath来绘制路径来执行动画
       3.当做转场动画时, 使用核心动画 (核心动画转场类型比较多)CATrasition或是UIView的核心动画
     
     
     
     */
    
    #import "ViewController.h"
    
    @interface ViewController ()
    @property (weak, nonatomic) IBOutlet UIView *redView;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
    
        NSLog(@"%@",NSStringFromCGRect(self.redView.frame));
        
    
        
        
    }
    
    
    
    -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
        
    //    CABasicAnimation *anim = [CABasicAnimation animation];
    //    anim.keyPath = @"position.y";
    //    anim.toValue = @400;
    //    anim.removedOnCompletion = NO;
    //    anim.duration = 1;
    //    anim.fillMode = kCAFillModeForwards;
    //    anim.delegate = self;
    //    [self.redView.layer addAnimation:anim forKey:nil];
        
        
        [UIView animateWithDuration:0.5 animations:^{
           
            self.redView.center = CGPointMake(50, 400);
            
            
        }completion:^(BOOL finished) {
             NSLog(@"%@",NSStringFromCGRect(self.redView.frame));
        }];
        
        
    }
    
    //动画开始时执行
    -(void)animationDidStart:(CAAnimation *)anim {
        //NSLog(@"%s",__func__);
    }
    
    //动画完成时执行
    -(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag {
        //NSLog(@"%s",__func__);
      //  NSLog(@"finished==%@",NSStringFromCGRect(self.redView.frame));
    }
    
    @end

    1.UIView和核心动画区别?

      核心动画只能添加到CALayer

      核心动画一切都是假象,并不会改变真实的值。

       

    2.什么时候使用UIView的动画?

      如果需要与用户交互就使用UIView的动画.

      不需要与用户交互可以使用核心动画

     

        3.什么场景使用核心动画最多?

          在转场动画中,核心动画的类型比较多

      根据一个路径做动画,只能用核心动画(帧动画)

      动画组:同时做多个动画

  • 相关阅读:
    Codeforces F. Bits And Pieces(位运算)
    一场comet常规赛的台前幕后
    【NOIP2019模拟2019.9.4】B(期望的线性性)
    「NOI2016」循环之美(小性质+min_25筛)
    【NOI2011】兔农(循环节)
    LOJ #6538. 烷基计数 加强版 加强版(生成函数,burnside引理,多项式牛顿迭代)
    noi2019感想
    7.12模拟T2(套路容斥+多项式求逆)
    CF 848E(动态规划+分治NTT)
    CF 398 E(动态规划)
  • 原文地址:https://www.cnblogs.com/cqb-learner/p/5840793.html
Copyright © 2011-2022 走看看