UIVIew动画 和 核心动画的区别

先看一个动画效果

  • 这是一个很简单的动画,我让这个红色的view从(153,139)的位置平移到(200,400)的位置

用核心动画

  • ViewController.m
#import "ViewController.h"@interface ViewController ()<CAAnimationDelegate>
@property (weak, nonatomic) IBOutlet UIView *redView;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];NSLog(@"最开始的位置:%@",NSStringFromCGPoint(_redView.layer.position));}-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{CABasicAnimation * anim = [CABasicAnimation animation];anim.keyPath = @"position";anim.toValue = [NSValue valueWithCGPoint:CGPointMake(200, 400)];anim.removedOnCompletion = NO;anim.fillMode = kCAFillModeForwards;anim.delegate = self;[_redView.layer addAnimation:anim forKey:nil];}// 动画完成的时候调用
-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{NSLog(@"变化后的位置:%@",NSStringFromCGPoint(_redView.layer.position));
}@end
  • 看打印

用UIView动画

  • ViewController.m
#import "ViewController.h"@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *redView;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];NSLog(@"最开始的位置:%@",NSStringFromCGPoint(_redView.layer.position));}-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{/*-----------UIView的的动画----------------*/[UIView animateWithDuration:0.25 animations:^{_redView.layer.position = CGPointMake(200, 400);} completion:^(BOOL finished) {NSLog(@"变化后的位置:%@",NSStringFromCGPoint(_redView.layer.position));}];}@end
  • 看打印

结论

  • 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场)。

  • UIView动画必须通过修改属性的真实值,才有动画效果。

十 iOS 之UIVIew动画 和 核心动画的区别相关推荐

  1. css怎么做向左拉伸动画_CSS核心动画技巧:重力,挤压和拉伸

    css怎么做向左拉伸动画 Previously I've talked about using ease-in and ease-out to enhance motion design. Those ...

  2. 缓动动画_核心动画概念:缓入缓出

    缓动动画 With the arrival of CSS transitions, animation is now completely at home on web pages. In anima ...

  3. iOS CoreAnimation 核心动画系列博客索引

    学了这些文章能做什么,了解核心动画各个类能做什么,产品有些简单的视图平移.旋转.折叠.抖动的需求,都能搞了 我们写博客的目的是学习研究之后做记录,捎带让别人指教,就是这么简单 博客文章都是对同一个领域 ...

  4. 核心动画与UIView的区别

    核心动画与UIView的区别 1.核心动画只作用于layer,使用核心动画之前,必须有layer 2.核心动画只是假象,并没有移动实际位置 什么时候使用核心动画,什么时候使用UIView动画 1.当不 ...

  5. iOS之CALayer与核心动画(二)

    01-转盘 1.搭建界面把转盘View给封装起来. 由于界面是固定不变的,可以弄一个Xib展示界面.外界使用时直接来一个类方法直接调用. 2.让转盘进行旋转.在封装的View内部提供一个开始旋转的方法 ...

  6. 核心动画——Core Animation

    一. CALayer (一). CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView,其实UIV ...

  7. Core Animation核心动画的使用

    什么是核心动画 核心动画就是CoreAnimation直译过来的中文,它是一组非常强大的动画处理API,只需要使用少量代码就能实现炫酷的动画效果. 核心动画的好处 核心动画可以跨平台使用,Mac OS ...

  8. Core Animation 文档翻译 (第二篇)—核心动画基础要素

    前言 核心动画为我们APP内Views动画和其他可视化元素动画提供了综合性的实现体系.核心动画不是我们APP内Views的替代品,相反,它是一种结合Views来提供更好性能和支持Content动画的技 ...

  9. 核心动画——CAAnimation

    1.什么是核心动画? 核心动画--CAAnimation,采用了CAMediaTiming协议,可以调整时间,包括持续时间,速度,重复次数;采用了CAAction协议,可以通过响应动作的方式来显示动画 ...

最新文章

  1. 32位汇编寄存器及汇编指令
  2. js变量传递给less_如何利用webpack实现一键换肤(CSS变量替换)
  3. android 图片放大缩小 多点触摸,Android 多点触摸(图片放大缩小)
  4. python语言入门m-Python学习基础篇 -1
  5. 劣势者效应下,B站等短视频平台UP主“卖惨”吸睛又吸金?
  6. 关于const记录类型全局变量赋初值的问题
  7. 【全网最全】一文搞定 Linux 压缩、解压哪些事儿
  8. Jenkins时区设置为北京时间
  9. android没有蓝牙设备,【Android】没有触发LeScanCallback导致无法搜索到蓝牙设备
  10. EDA365 Skill找不到Cadence安装路径的原因与解决办法
  11. 怎么用python实现序列比对_生信学习笔记——Python+Mafft实现批量化多序列比对
  12. android 绘制分割线,Android 布局中分割线创建的三种方式
  13. 主要计算机硬件部件,计算机硬件各部件的主要功能
  14. 网路学员面试常见问题:
  15. 条码标签里的数据源如何使用
  16. 手撸一个Switch开关组件
  17. 什么是工程建设的BLT模式
  18. JS 中常用判断为空的方法
  19. UGC、PGC、OGC、PUGC、MGC了解学习
  20. 世界研发管理组织在美国成立,中国籍研发管理专家江新安当选总干事

热门文章

  1. 首都在线蝴蝶沙龙|企业混合云架构分享
  2. SqlServer_保留两位小数_个位显示0_0.00
  3. mysql——mysql数据备份与数据恢复
  4. TP整合微信遇到的一系列问题
  5. MyBatis快速入门——第三章、DML语句操作
  6. 库存管理软件哪个好用?体验好的4大库存管理软件
  7. 关于sevice层和bo
  8. 高速系统设计自学笔记——信号完整性2
  9. 蓝牙耳机连接导致软件刷新或者崩溃 解决办法
  10. 利用sigar监控服务器状态