iOS开发-Core Animation(核心动画)简介

iOS开发之核心动画(Core Animation) 1、概述       Core Animation是一个图形渲染和动画的底层框架,用于 iOS和Mac OS X。可以提供专业级的动画效果,是高层图形技术的基础。 2、使用        通过CALayer类实现,CALayerkey可以理解成是UIView的一个底层, 阅读详情

今天给同学讲解一下 iOS开发中比较重要的核心动画Core Animation 那么废话不多说,直接上代码~

http://blog.youkuaiyun.com/ZZ_iOSdeveloper

  • Core Animation简介
  • Core Animation的使用步骤
  • CAAnimation的使用(核心)
  • CAPropertyAnimation的使用
  • CAMediaTiming动画协议(protocol)属性解析
  • 补充说明(注意)

Core Animation简介

  • Core Animation直接作用在CALayer上,非UIVIew;
  • Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就可以实现非常强大的功能。
  • Core Animation是跨平台的,可以在mac和iOS中通用。
  • Core Animation动画执行时是后台操作,所以不会堵塞主线程。(不阻塞主线程,即苹果为我们在执行完动画block后主动为我们释放了block对象,亦可以理解为在执行动画的时候还能执行操作)。

Core Animation的使用步骤

  • 1.使用它需要先添加QuartzCore.framework框架和引入主头文件<QuartzCore/QuartzCore.h>(iOS7以后不需要)
  • 2.初始化一个CAAnimation对象,并设置一些动画相关属性
  • 3.通过调用CALayer的addAnimation:forKey:方法增加CAAnimation对象到CALayer中,这样就能开始执行动画了
  • 4.通过调用CALayer的removeAnimationForKey:方法可以停止CALayer中的动画

CAAnimation的使用(核心)

  • CAAnimation类继承结构图
     CAAnimation类继承结构图
  • CAAnimation是所有动画类的父类,但是它不能直接使用,应该使用它的子类。(注意)
  • CAAnimation常见属性
duration:动画的持续时间
repeatCount:动画的重复次数
timingFunction:控制动画运行的节奏
  • CAAnimation能用的动画子类
CABasicAnimation
CAKeyframeAnimation
CATransition
CAAnimationGroup

CAPropertyAnimation的使用

  • CAPropertyAnimation是CAAnimation的子类,但是不能直接使用,要想创建动画对象,应该使用它的两个子类:
  • CABasicAnimation和CAKeyframeAnimation
它有个NSString类型的keyPath属性,你可以指定CALayer的某个属性名为keyPath,并且对CALayer的这个属性的值进行修改,达到相应的动画效果。比如,指定@"position"为keyPath,就会修改CALayer的position属性的值,以达到平移的动画效果

CAMediaTiming动画协议(protocol)属性解析

duration:动画的持续时间
repeatCount:动画的重复次数
repeatDuration:动画的重复时间
removedOnCompletion:默认为YES,代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。如果想让图层保持显示动画执行后的状态,那就设置为NO,不过还要设置fillMode为kCAFillModeForwards
fillMode:决定当前对象在非active时间段的行为。比如动画开始之前,动画结束之后
beginTime:可以用来设置动画延迟执行时间,若想延迟2s,就设置为CACurrentMediaTime()+2,CACurrentMediaTime()为图层的当前时间
timingFunction:速度控制函数,控制动画运行的节奏
delegate:动画代理

补充说明(注意)

  • 所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类
iOS 核心动画 Core Animation浅谈 代码地址如下:http://www.demodashi.com/demo/11603.html 前记关于实现一个iOS动画,如果简单的,我们可以直接调用UIView的代码块来实现,虽然使用UIView封装的方法很方便,但是这只能用于一些简答的动画,如果是一些复杂的动画呢?这就不得不去研究下核心动画Core Animation(包含在Quartz Core框架中)了。这这之前我们必须了解,CALaye 阅读详情

相关推荐

iOS 核心动画(Core Animation)一:初识

核心动画(Core Animation)一:初识简介继承关系图层(CALayer)图层继承关系图层提供绘图和动画的基础图层(CALayer)与视图(View)之间的关系图层使用两种类型的坐标系坐标点(position)锚点(anchorPoint)在三个维度上操纵图层更改UIView使用的图层类使用图像作为图层的内容使用委托提供图层内容 简介 Core Animation是可在iOS和OS X上使用的图形渲染和动画基础结构,可用于为应用程序的视图和其他视觉元素制作动画。使用Core Animation,绘制

wahkim的博客 579

iOS开发核心动画之事件处理

一. 事件 1. iOS中事件分为三种 触摸 加速计 远程 2.什么是响应者对象? 继承了UIResponds的对象我们称它为响应者对象 UIApplication、UIViewController、UIView都继承自UIResponder 因此它们都是响应者对象,都能够接收并处理事件 ...

193

iOS 核心动画(Core Animation)三:基础动画

核心动画(Core Animation)三:基础动画(CABasicAnimation) 简介CABasicAnimation与CAAnimation继承关系## CALayer 动画属性CABasicAnimation 属性列表CASpringAnimation 属性列表动画实例基础动画弹簧动画 简介 修改图层属性并提供基本的单关键帧动画功能的对象。 CABasicAnimation与CAAnimation继承关系 ## CALayer 动画属性 anchorPoint backgroundColor

wahkim的博客 541

iOS animation 核心动画 顺序执行

Which is the most elegant and modular way to chain animation in a Core Animation context? I mean to do animations that starts just when other finished (for example, changing position and then opa

jeffasd的专栏 5596

掌握Core Animation关键帧动画技巧

Core Animation是iOS开发中强大的动画框架,它为开发者提供了丰富且流畅的动画制作工具。利用Core Animation,开发者能够创建从简单到复杂的动画效果,增强应用的视觉体验。本章将概述Core Animation的基本概念,以及它在iOS应用开发中的重要性。我们将从Core Animation的组成、架构以及如何为应用中的元素添加动画效果进行初步介绍,为理解后续章节中关键帧动画等高级特性打下基础。关键帧动画是计算机图形和动画领域中的一个核心概念。

weixin_36444661的博客 1258

awesome-ios-animation:探索iOS动画技术的宝库

在iOS开发中,Core Animation框架扮演着至关重要的角色,它负责提供流畅和高效的动画效果。Core Animation框架的基本组成主要包括以下几个组件:: 用于管理动画事务,确保动画在执行时具有原子性,要么全部执行要么全部不执行。通过,可以对动画进行分组和嵌套。swiftCATransaction.setDisableActions(true) // 在事务中禁用自动动画// 对视图执行一些操作,比如修改位置等// 在同一个事务中添加多个动画。

weixin_31776191的博客 1108

iOS动画篇CoreAnimation(详细解析核心动画)

引言 之前说到CALayer以及子类动画,并且CALayer的有些属性自带隐式动画,不明白的可自行查看之前的文章,今天说一说CoreAnimation核心动画。   在开发过程中,对于动画效果,很多人好像都青睐于UIView动画,简单快捷,一个代码块能实现一个动画让很多其他系统下开发的小伙伴看红了眼。但是当有一些特殊的需求时,那你难免会有大量的Block嵌套产生,同时如何高效的控制动画效果...

weixin_42786992的博客 349

头歌 DNS协议分析第3关----DNS 报文分析

DNS 报文分析

qq_67667368的博客 4346

iOS开发UI篇——Core Animation核心动画CAShapeLayer(绘制图形等)简介

重点:   获取绘制图形 LayerCAShapeLayer *shapeLayer = [CAShapeLayer layer]; 设置图形有线颜色 [CAShapeLayerlayer].strokeColor = [UIColor redColor].CGColor; 设置图形填充颜色 [CAShapeLayerlayer].fillCo...

weixin_30537451的博客 204

Seedance 2.5本地部署指南:AI生图与视频生成的完整实践

最近在AI生成内容领域,本地部署方案越来越受到开发者关注。特别是Seedance 2.5的发布,让很多原本依赖云端服务的用户开始转向本地化解决方案。本文将从实际使用角度出发,完整介绍Seedance 2.5的本地部署流程、功能特性对比以及实际应用技巧。 1. Seedance 2.5核心特性解析 1.1 什么是Seedance 2.5 Seedance 2.5是一款开源的AI生图和视频生成工具,支持在本地环境运行,无需联网即可实现高质量的图像和视频生成。相比之前的2.0版本,2.5在生成质量、运行效率和功能

weixin_42566121的博客 1668

STM32+ESP8266接入OneNet物联网平台全流程

MQTT协议是物联网设备与云平台通信的主流轻量级消息传输标准,其发布/订阅模型天然适配嵌入式资源受限场景;OneJSON作为中国移动OneNet平台定制的数据格式,在标准JSON基础上精简Schema、降低解析开销,显著提升STM32等MCU的处理效率。该技术组合兼顾安全性、低功耗与工程可量产性,广泛应用于环境监测、智能仪表、工业传感器等远程数据采集系统。实际落地需协同完成云平台物模型定义、Token动态认证、MQTT Topic严格构造、AT指令可靠交互及单总线传感器数据融合等关键环节。本文以DS18B2

u5v6w7的博客 1119

iOS开发UI篇——Core Animation核心动画CAGradientLayer(实现渐变色等)简介

一、CAGradientLayer实现渐变色(设置tableView背景为渐变色) [self.view setBackgroundColor:[UIColor whiteColor]]; UITableView *table = [[UITableView alloc] initWithFrame:CGRectMake(0,0, mainWidth, mainHeight-64)]; ...

weixin_30265103的博客 197

保研专业课复习别瞎卷!抓住408和数学重点,用真题反推高效复习路径

本文针对计算机专业保研学生,提出以真题为导向的408专业课和数学高效复习策略。通过构建真题知识图谱、分析题型与难度矩阵,帮助考生精准把握数据结构、操作系统等核心科目的高频考点,如树与图算法、TCP/IP协议栈等,并制定科学的时间分配方案,实现短期内的快速突破。

weixin_27966471的博客 402

iOS开发书籍推荐 - 《iOS CORE ANIMATION》核心动画高级技巧(附链接)

在阅读《iOS Core Animation》这本书后,我深刻感受到它与我们实际开发中所用的知识非常契合。书中的大多数内容都很熟悉,因此学习起来不会有太大难度。然而,书中通过有结构、有层次的讲解,将这些看似简单的概念进行了更为详尽的串联,使得我在实际开发中能够更加得心应手,尤其是在动画的使用上。 通过本书的学习,我不仅能够避免一些常见的开发问题,还能够找到更加灵活的解决方案。即便是面对相同的问题,书中提供的不同思路和技巧让我能够有更多选择,进而挑选出最优的解决方案。

weixin_39339407的博客 1603

STM32CubMX_MQ135检测空气质量

一、MQ135简介 MQ135是测量空气污染情况常用的一个传感器,具有代表性,价格低,寿命长,敏感度也OK,主要用于测量空气中二氧化碳,氮氧化物,氨气,酒精,苯类等。这几样气体可以说都属于家用空气污染测定中的重要成份,因此用这个传感器刚刚好。 MQ135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在污染气体时,传感器的电导率随空气中污染气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。 注: pm2.5的话要用另外类型

W_Oilpicture的博客 3万+

Python爬虫实战:新浪财经股票金融数据全方位抓取教程

本教程系统介绍了新浪财经股票数据爬取技术,从静态网页解析、实时接口请求到异步爬取和数据存储,帮助你搭建了一个完整的金融数据采集流程。未来,可以结合深度学习模型进行行情预测,或者将数据接入量化交易系统,实现自动化投资。

2201_76125261的博客 2209

【iOS开发基础】Core Animation

iOS开发中常见的动画类型包括UIView动画、Core Animation和UIKit Dynamics。UIView动画适合简单视图属性变化,Core Animation提供更复杂的图层动画,UIKit Dynamics则用于物理模拟效果。CABasicAnimation用于基本属性动画,CAKeyframeAnimation支持路径动画,CATransition处理转场效果。Core Animation 是苹果提供的图形渲染和动画框架,基于图层(CALayer)而非视图(UIView)实现。

m0_70834402的博客 1256

零基础学习simulink-- 四旋翼和六旋翼无人机的建模与动力学分析

通过上述代码实现,您可以逐步创建和搭建一个多旋翼无人机(如四旋翼、六旋翼)的动力学模型,并结合自适应控制器进行仿真。该模型不仅考虑了无人机的基本动力学行为,还引入了空气阻力、螺旋桨之间的相互作用以及气流干扰等复杂效应,使得仿真结果更加接近实际情况。Simulink 提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。多旋翼无人机动力学建模:建立四旋翼和六旋翼无人机的动力学模型,包括平移运动和旋转运动方程。升力和扭矩模型。

amy_mhd的博客 386

iOS边城之动画编程(Core Animation)

QuartzCore.framework     前缀名:CAXXX     参考:官方译 iOS开发之让你的应用“动”起来 cocoachina   简单一例 [UIView beginAnimations:nil context:nil];//开始动画 //修改x,此处的x属性为扩展的Category self.testView.x +=100; [UIView commitAn

mokai 2733

【异常】Cursor编辑器 “Taking longer than expected...“ 报错全链路排查与解决方案

该提示并非传统的程序崩溃或语法报错,本质是Cursor编辑器的超时预警机制——当核心任务(云端AI推理请求、本地项目索引等)的执行耗时超出系统预设阈值时,触发的用户告知类提示,核心诱因是任务执行全链路出现阻塞或性能瓶颈。以下方案按排查优先级从高到低排序,覆盖从快速急救到根因根治的全流程,可按步骤逐步验证解决。针对大仓库、多依赖项目的索引超时问题,核心是通过规则过滤无效文件,从根源降低索引负载。

奶爸的编程之路,也就一周冷个三天 3101

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

iOS开发-iOS动画开发CoreAnimation核心动画开发-CoreAnimation核心动画综合实践

一、 CoreAnimation 核心动画 CoreAnimation提供高帧速率和流畅的动画,而不会给CPU带来负担并降低应用程序的速度。绘制动画的每个帧所需的大部分工作都是为我们完成的。我们可以配置动画参数,例如起点和终点,Core Animation会完成其余工作,将大部分工作交给专用图形硬件,以加速渲染。 1.核心动画基本概念:CoreAnimation是跨平台的,支持 iOS 和 M...

伪随机的张三 2738

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何在ios中运用core animation暂停和继续动画

暂停和继续动画的核心代码如下://暂停layer上面的动画 - (void)pauseLayer:(CALayer*)layer { CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil]; layer.speed = 0.0; layer.timeOffset =

甘橙移动应用团队 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

核心动画(Core Animation)

最近了解了一下核心动画 ,跟大家分享一下 核心动画(Core Animation) 一、Core animation简单介绍      1.Core Animation,中文翻译为核心动画,是一套包含图形绘制,投影,动画的Objective–C类集合。它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是说,使用少量的代码就

雷雨降临的博客 1148

在ios中运用core animation暂停和继续动画

核心代码如下 //暂停layer上面的动画 - (void)pauseLayer:(CALayer*)layer {     CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];     layer.speed = 0.0;     layer.timeOffset

IOS研究专栏 2512

IOS动画核心 之 KeyFrameAnimation简介

IOS动画核心 之 KeyFrameAnimation简介 直接上代码吧 1,在viewdidload方法里面定义两个按钮: - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor whiteColor]; self.view.autoresizin

七月飞雪的专栏 2373

探索 iOS Core Animation:解锁动画之美

探索 iOS Core Animation:解锁动画之美 iOS 应用开发中,Core Animation 是一个至关重要的框架,它赋予开发者强大的能力去创建出流畅、细腻的视觉效果。今天我们要深入了解一下由社区成员 AlfredTheBest 维护的开源项目 ,它是一个专为 iOS 开发者打造的 Core Animation 实践教程和示例库。 项目简介 项目是一个集合了多种 Core Anim...

gitblog_00019的博客 837
上一篇: iOS开发-Quartz 2D简介(三)
下一篇: iOS开发-转盘功能的实现
ZZ_iOSDeveloper
博客等级 码龄11年 21粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值