ios开发核心动画七:核心动画与UIView动画的区别
Posted Hello_IOS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.什么场景使用核心动画最多?
在转场动画中,核心动画的类型比较多
根据一个路径做动画,只能用核心动画(帧动画)
动画组:同时做多个动画
以上是关于ios开发核心动画七:核心动画与UIView动画的区别的主要内容,如果未能解决你的问题,请参考以下文章