• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Harley
博客园    首页    新随笔    联系   管理    订阅  订阅

随笔分类 -  核心动画

1 2 下一页
对动画进行系统的学习!
CoreAnimation(I)

只有注册用户登录后才能阅读该文。
posted @ 2018-07-12 10:01 Harely 阅读(10) 评论(0) 推荐(0)
减少图层数量(图层性能 15.4 )

摘要:减少图层数量 初始化图层,处理图层,打包通过IPC发给渲染引擎,转化成OpenGL几何图形,这些是一个图层的大致资源开销。事实上,一次性能够在屏幕上显示的最大图层数量也是有限的。 确切的限制数量取决于iOS设备,图层类型,图层内容和属性等。但是总得说来可以容纳上百或上千个,下面我们将演示即使图层本身 阅读全文
posted @ 2017-10-06 00:37 Harely 阅读(479) 评论(0) 推荐(0)
混合和过度绘制(图层性能 15.3)

摘要:混合和过度绘制 在第12章有提到,GPU每一帧可以绘制的像素有一个最大限制(就是所谓的fill rate),这个情况下可以轻易地绘制整个屏幕的所有像素。但是如果由于重叠图层的关系需要不停地重绘同一区域的话,掉帧就可能发生了。 GPU会放弃绘制那些完全被其他图层遮挡的像素,但是要计算出一个图层是否被遮 阅读全文
posted @ 2017-10-06 00:33 Harely 阅读(264) 评论(0) 推荐(0)
离屏渲染(图层性能 15.2)

摘要:离屏渲染 当图层属性的混合体被指定为在未预合成之前不能直接在屏幕中绘制时,屏幕外渲染就被唤起了。屏幕外渲染并不意味着软件绘制,但是它意味着图层必须在被显示之前在一个屏幕外上下文中被渲染(不论CPU还是GPU)。图层的以下属性将会触发屏幕外绘制: 圆角(当和maskToBounds一起使用时) 图层蒙 阅读全文
posted @ 2017-10-06 00:32 Harely 阅读(238) 评论(0) 推荐(0)
隐式绘制(图层性能 15.1)

只有注册用户登录后才能阅读该文。
posted @ 2017-10-06 00:18 Harely 阅读(1) 评论(0) 推荐(0)
文件格式(图像 IO 14.3)

摘要:文件格式 图片加载性能取决于加载大图的时间和解压小图时间的权衡。很多苹果的文档都说PNG是iOS所有图片加载的最好格式。但这是极度误导的过时信息了。 PNG图片使用的无损压缩算法可以比使用JPEG的图片做到更快地解压,但是由于闪存访问的原因,这些加载的时间并没有什么区别。 清单14.6展示了标准的应 阅读全文
posted @ 2017-10-06 00:17 Harely 阅读(630) 评论(0) 推荐(0)
缓存(图像 IO 14.2)

摘要:缓存 如果有很多张图片要显示,最好不要提前把所有都加载进来,而是应该当移出屏幕之后立刻销毁。通过选择性的缓存,你就可以避免来回滚动时图片重复性的加载了。 缓存其实很简单:就是存储昂贵计算后的结果(或者是从闪存或者网络加载的文件)在内存中,以便后续使用,这样访问起来很快。问题在于缓存本质上是一个权衡过 阅读全文
posted @ 2017-10-05 23:36 Harely 阅读(222) 评论(0) 推荐(0)
加载和潜伏(图像 IO 14.1)

只有注册用户登录后才能阅读该文。
posted @ 2017-10-05 23:11 Harely 阅读(0) 评论(0) 推荐(0)
异步绘制(高效绘图 13.4)

只有注册用户登录后才能阅读该文。
posted @ 2017-10-05 22:53 Harely 阅读(2) 评论(0) 推荐(0)
脏矩形(高效绘图 13.3)

摘要:脏矩形 有时候用CAShapeLayer或者其他矢量图形图层替代Core Graphics并不是那么切实可行。比如我们的绘图应用:我们用线条完美地完成了矢量绘制。但是设想一下如果我们能进一步提高应用的性能,让它就像一个黑板一样工作,然后用『粉笔』来绘制线条。模拟粉笔最简单的方法就是用一个『线刷』图片 阅读全文
posted @ 2017-10-05 22:51 Harely 阅读(1787) 评论(0) 推荐(0)
矢量图形(高效绘图 13.2)

摘要:矢量图形 我们用Core Graphics来绘图的一个通常原因就是只是用图片或是图层效果不能轻易地绘制出矢量图形。矢量绘图包含一下这些: 任意多边形(不仅仅是一个矩形) 斜线或曲线 文本 渐变 举个例子,清单13.1 展示了一个基本的画线应用。这个应用将用户的触摸手势转换成一个UIBezierPat 阅读全文
posted @ 2017-10-05 22:35 Harely 阅读(697) 评论(0) 推荐(0)
软件绘图(高效绘图 13.1)

摘要:软件绘图 术语绘图通常在Core Animation的上下文中指代软件绘图(意即:不由GPU协助的绘图)。在iOS中,软件绘图通常是由Core Graphics框架完成来完成。但是,在一些必要的情况下,相比Core Animation和OpenGL,Core Graphics要慢了不少。 软件绘图不 阅读全文
posted @ 2017-10-05 21:39 Harely 阅读(243) 评论(0) 推荐(0)
Instruments(性能调优 12.3)

摘要:Instruments Instruments是Xcode套件中没有被充分利用的一个工具。很多iOS开发者从没用过Instruments,或者只是用Leaks工具检测循环引用。实际上有很多Instruments工具,包括为动画性能调优的东西。 你可以通过在菜单中选择Profile选项来打开Instr 阅读全文
posted @ 2017-10-05 21:32 Harely 阅读(1673) 评论(0) 推荐(0)
测量,而不是猜测(性能调优 12.2)

摘要:测量,而不是猜测 于是现在你知道有哪些点可能会影响动画性能,那该如何修复呢?好吧,其实不需要。有很多种诡计来优化动画,但如果盲目使用的话,可能会造成更多性能上的问题,而不是修复。 如何正确的测量而不是猜测这点很重要。根据性能相关的知识写出代码不同于仓促的优化。前者很好,后者实际上就是在浪费时间。 那 阅读全文
posted @ 2017-10-05 20:07 Harely 阅读(172) 评论(0) 推荐(0)
CPU VS GPU(性能调优 12.1)

摘要:CPU VS GPU 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器)。在现代iOS设备中,都有可以运行不同软件的可编程芯片,但是由于历史原因,我们可以说CPU所做的工作都在软件层面,而GPU在硬件层面。 总的来说,我们可以用软件(使用CPU)做任何事情,但是对于图像处理, 阅读全文
posted @ 2017-10-05 20:05 Harely 阅读(1224) 评论(0) 推荐(0)
物理模拟(基于定时器的动画 11.2)

摘要:物理模拟 即使使用了基于定时器的动画来复制第10章中关键帧的行为,但还是会有一些本质上的区别:在关键帧的实现中,我们提前计算了所有帧,但是在新的解决方案中,我们实际上实在按需要在计算。意义在于我们可以根据用户输入实时修改动画的逻辑,或者和别的实时动画系统例如物理引擎进行整合。 Chipmunk 我们 阅读全文
posted @ 2017-10-05 20:02 Harely 阅读(700) 评论(0) 推荐(0)
定时帧(基于定时器的动画 11.1)

摘要:定时帧 动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点。一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只是看起来像是做了运动。 我们之前提到过iOS按照每秒60次刷新屏幕,然后CAAnimation计算出需要展示的新的帧, 阅读全文
posted @ 2017-10-05 12:21 Harely 阅读(713) 评论(0) 推荐(0)
自定义缓冲函数(缓冲 10.2)

摘要:自定义缓冲函数 在第八章中,我们给时钟项目添加了动画。看起来很赞,但是如果有合适的缓冲函数就更好了。在显示世界中,钟表指针转动的时候,通常起步很慢,然后迅速啪地一声,最后缓冲到终点。但是标准的缓冲函数在这里每一个适合它,那该如何创建一个新的呢? 除了+functionWithName:之外,CAMe 阅读全文
posted @ 2017-10-05 11:37 Harely 阅读(950) 评论(0) 推荐(0)
动画速度(缓冲 10.1)

摘要:动画速度 动画实际上就是一段时间内的变化,这就暗示了变化一定是随着某个特定的速率进行。速率由以下公式计算而来: 这里的变化可以指的是一个物体移动的距离,时间指动画持续的时长,用这样的一个移动可以更加形象的描述(比如position和bounds属性的动画),但实际上它应用于任意可以做动画的属性(比如 阅读全文
posted @ 2017-10-05 09:45 Harely 阅读(1120) 评论(0) 推荐(0)
手动动画(9.2 图层时间)

摘要:手动动画 timeOffset一个很有用的功能在于你可以它可以让你手动控制动画进程,通过设置speed为0,可以禁用动画的自动播放,然后来使用timeOffset来来回显示动画序列。这可以使得运用手势来手动控制动画变得很简单。 举个简单的例子:还是之前关门的动画,修改代码来用手势控制动画。我们给视图 阅读全文
posted @ 2017-10-04 23:05 Harely 阅读(422) 评论(0) 推荐(0)

1 2 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3