
动画
一度_iOSDeveloper
做好自己,做更好的自己
展开
-
CADisplayLink结合UIBezierPath的神奇妙用
做过iOS动画的朋友都知道,动画中一大头疼之处就是弹性、形变之类扭曲的效果。iOS7开始,我们开始可以直接使用UiView的渲染动画API实现简单的弹性效果。+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampin转载 2016-11-29 09:49:07 · 513 阅读 · 0 评论 -
CoreAnimation2-视觉效果和变换
圆角圆角矩形是iOS的一个标志性审美特性。这在iOS的每一个地方都得到了体现,不论是主屏幕图标,还是警告弹框,甚至是文本框。按照这流行程度,你可能会认为一定有不借助Photoshop就能轻易创建圆角举行的方法。恭喜你,猜对了。CALayer有一个叫做conrnerRadius的属性控制着图层角的曲率。它是一个浮点数,默认为0(为0的时候就是直角),但是你可以把它设置成任意值。默认情转载 2016-11-24 11:48:32 · 791 阅读 · 0 评论 -
CoreAnimation3-专用图层
CAShapeLayerCAShapeLayer是一个通过矢量图形而不是bitmap来绘制的图层子类。你指定诸如颜色和线宽等属性,用CGPath来定义想要绘制的图形,最后CAShapeLayer就自动渲染出来了。当然,你也可以用Core Graphics直接向原始的CALyer的内容中绘制一个路径,相比直下,使用CAShapeLayer有以下一些优点:渲染快速。CAShapeL转载 2016-11-24 11:49:22 · 517 阅读 · 0 评论 -
CoreAnimation4-隐式动画和显式动画
事务Core Animation基于一个假设,说屏幕上的任何东西都可以(或者可能)做动画。动画并不需要你在Core Animation中手动打开,相反需要明确地关闭,否则他会一直存在。当你改变CALayer的一个可做动画的属性,它并不能立刻在屏幕上体现出来。相反,它是从先前的值平滑过渡到新的值。这一切都是默认的行为,你不需要做额外的操作。这看起来这太棒了,似乎不太真实,我们转载 2016-11-24 11:51:14 · 1146 阅读 · 0 评论 -
CoreAnimation5-图层时间和缓冲
图层时间动画的发生是需要持续一段时间的,所以计时对整个概念来说至关重要。在这一章中,我们来看看CAMediaTiming,看看Core Animation是如何跟踪时间的。CAMediaTiming协议 CAMediaTiming协议定义了在一段动画内用来控制逝去时间的属性的集合,CALayer和CAAnimation都实现了这个协议,所以时间可以被任意基于一个图层转载 2016-11-24 11:52:19 · 531 阅读 · 0 评论 -
CoreAnimation6-基于定时器的动画和性能调优
基于定时器的动画定时帧动画看起来是用来显示一段连续的运动过程,但实际上当在固定位置上展示像素的时候并不能做到这一点。一般来说这种显示都无法做到连续的移动,能做的仅仅是足够快地展示一系列静态图片,只是看起来像是做了运动。我们之前提到过iOS按照每秒60次刷新屏幕,然后CAAnimation计算出需要展示的新的帧,然后在每次屏幕更新的时候同步绘制上去,CAAnimation转载 2016-11-24 11:53:24 · 1331 阅读 · 0 评论 -
CorAnimation7-高效绘图、图像IO以及图层性能
高效绘图软件绘图术语绘图通常在Core Animation的上下文中指代软件绘图(意即:不由GPU协助的绘图)。在iOS中,软件绘图通常是由Core Graphics框架完成来完成。但是,在一些必要的情况下,相比Core Animation和OpenGL,Core Graphics要慢了不少。软件绘图不仅效率低,还会消耗可观的内存。CALayer只需要一些与自己相关的内存:转载 2016-11-24 11:54:26 · 837 阅读 · 0 评论 -
如何实现一个不规则排列的图片布局算法
一直在500px上看照片,发照片。以前看它的首页图片展示就只是觉得好看,洋气,也没想过自己在iOS上实现一下。昨天不知怎么的就开始想其中的算法了,现在我把思考的过程在这里贴出来分享一下,如果你有更好的算法欢迎探讨。最终我做出的效果是这样的:垂直滚动水平滚动算法总体思路先说一下总体上的思路。既然图片的大小、位置各不一样,我们转载 2016-11-29 09:52:27 · 6709 阅读 · 0 评论 -
用二次函数实现平滑的手势驱动动画
写这篇文章的动机来源于最近做的个动画,如上。其中我一开始在处理pan-to-dismiss的图片形变时候遇到了点问题。首先,这个动画的思路是,以panGesture的transition.y为变量,去实时改变视图的CATransform3D属性。具体的,我们需要同时改变CATransform3DRotate和CATransform3DScale,这样才能在实现绕X轴转动的同时一起做缩放变换转载 2016-11-29 09:51:10 · 602 阅读 · 0 评论 -
CoreAnimation1-图层树、寄宿图以及图层几何学
(一)图层的树状结构Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Layer Kit这么一个不怎么和动画有关的名字演变而来,所以做动画这只是Core Animation特性的冰山一角。Core Animation是一个复合引擎,它的职责就是尽可能快地组合屏幕上不同的可视内容,这个内容是被分解成独立的图层,存储在一个叫做图层转载 2016-11-24 11:47:29 · 774 阅读 · 0 评论