首页 > 代码库 > ios开发核心动画七:核心动画与UIView动画的区别

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 = http://www.mamicode.com/@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.什么场景使用核心动画最多?

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

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

  动画组:同时做多个动画

 

ios开发核心动画七:核心动画与UIView动画的区别