首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS学习——核心动画

CAAnimationGroup使用Group可以将多个动画合并一起加入到层中,Group中所有动画并发执行,可以方便地实现需要多种类型动画的场景。...设置CAAnmation的属性,不同的动画类别属性参数不一样的 调用CALayer的addAnimation:forKey:将CAAnimation对象添加到CALayer上,就能执行动画 调用CALayer...这两类动画有相似的地方,就是这两类动画都是通过描绘路径来形成动画 CABasicAnimation通过设定起始点,终点,时间,动画会沿着你这设定点进行移动 CAKeyFrameAnimation则可以设置路径为更多的点构成的路径...从开始延迟几秒的话,设置为CACurrentMediaTime() + 秒数 的方式 timingFunction 设置动画的速度变化 fillMode 动画在开始和结束时的动作,默认值是 kCAFillModeRemoved...开始执行(如没有设置beginTime属性,则动画立即执行),动画执行完成后将会layer的改变恢复原状。

1.2K50

老司机带你走进Core Animation 之CAShapeLayer和CATextLayer

子路径 2.strokeEnd 是轮廓终点的属性,取值范围[0,1]。代表轮廓终点在整条路径的百分比处,相应的还有strokeStart属性。 不过你应该思考的是: 首先,哪个是所谓的终点?...真不是,这次说他主要是想表达这个属性是默认支持隐式动画的。 隐式动画就是不用显示声明,系统默认为我们实现的动画。...这个属性指的是实线与虚线长度交替的数组。注意奇数位为实线,偶数位为虚线,单位像素。系统会按照给定数组自动重复设置虚线。 lineDashPhase这个属性是告诉系统从多少开始计算这个距离。...怎么可能,我当然会把这个的实现方式告诉大家啊~ 先给大家看一个效果: 这个效果你一定会 这个效果你一定会吧,一个绿色的CALayer,,上面盖了一个红色的CAShapeLayer,strokeEnd从0...对咯,就是以一个CATextLayer做红色的CALayer的mask,CATextLayer的字体设置有颜色,背景设置透明色,这样就只能显示出红色的CALayer的文字部分了把他封装在一个UIView

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS Core Animation的用法

    一般来说,layer可以有两种用途,二者不互相冲突:一是对view相关属性的设置,包括圆角、阴影、边框等参数;二是实现对view的动画操控。...CAAnimation可分为以下四种: CABasicAnimation 通过设定起始点,终点,时间,动画会沿着你这设定点进行移动。...、终点的frame,时间,动画会沿你设定的轨迹进行移动 相关类 CATransaction 事务类,可以对多个layer的属性同时进行修改.它分隐式事务,和显式事务 CABasicAnimation...它设定开始值到结束值花费的时间。期间会被速度的属性所影响。 RemovedOnCompletion 这个属性默认为 true,那意味着,在指定的时间段完成后,动画就自动的从层上移除了。...RepeatDuration 这个属性指定了动画应该被重复多久。动画会一直重复,直到设定的时间流逝完。它不应该和 repeatCount 一起使用。

    1.4K30

    iOS 面试策略之系统框架-UIKit

    CALayer 在图像和动画渲染上性能更好。这是因为 UIView 有冗余的交互接口,而且相比 CALayer 还有层级之分。CALayer 在无需处理交互时进行渲染可以节省大量时间。...除此之外他还有关键帧动画和两个 view 转化等接口。它实现的动画无法回撤、暂停、与手势交互。 CALayer Animation 是更在底层 CALayer 上的动画接口。...它最大的优点在于 timing function 以及与手势配合的交互式动画设置相比 CALayer Animation 十分简便,可以说是为交互而生的动画接口。...当再次触摸屏幕时,如果小球未滑动到终点,则小球将暂停滑动,再次随手势线性滑动 当到达终点后,无论用户如何触摸屏幕,小球在终点静止不动 如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群931542608...当手势释放时,我们继续动画,让其自动完成。注意手势操控动画进行交互的时候,Animator 会自动将 timing function 从 ease out 转为 linear。

    1.5K20

    CAAnimation 核心动画概念一、 CAAnimation二、 CAPropertyAnimation三、CABasicAnimation(基本动画)CAPropertyAnimation的子类

    使用步骤: 1、创建一个CAAnimation对象 2、设置一些动画的相关属性 3、给CALayer添加动画(addAnimation:forKey: 方法) 4、停止CALayer动画(removeAnimationForKey...的一个属性名做为keyPath里的参数(NSString类型),并且对CALayer的这个属性的值进行修改,达到相应的动画效果。...比如,指定@”position”为keyPath,就修改CALayer的position属性的值,以达到平移的动画效果。...: keyPath相应属性的结束值,到某个固定的值(类似transform的make含义) 注意:随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue...kCATransitionFromBottom startProgress:动画起点(在整体动画的百分比) endProgress:动画终点(在整体动画的百分比) 例子: - (IBAction)

    2K90

    老司机带你走进Core Animation 之CAAnimation

    数值就是从锚点到layer的左上角(类比UIView的origin)的 横向/纵向 距离占layer得 width/height 的比例。 锚点 contents,寄宿图。...比如一个duration = 3的动画,timeOffset = 2,那么此时我的动画从第二秒开始播放,播放到第三秒动画结束的状态后,立即变为动画的初始状态,也就是第0秒的播放状态,继续播放之第二秒的状态...是因为keyTimes属性指定的是当前状态节点到初始状态节点的时间占动画总时长的比例。若果不设置keyTimes则匀速播放。...不过呢,这个转场动画不好的一点是需要跟转场代码写在一起,然而官方又没有给出转场到底是什么概念。...嘿嘿嘿~ 好多动画在一起 呐,这是一个老司机封装的DWAnimation,他可以轻松、优雅地帮助你生成上面的动画。

    1.4K20

    《Motion Design for iOS》(二十)

    在我们的第一个例子中,我们还是要动画之前同样的红色的球,使用我们定义的弹簧管理的弹簧效果将它的尺寸从1提升到2.0倍。...它是视图下的CALayer对象的一个属性,也就是我们实际打算使用关键帧动画的动画。还记得CALayer是Core Animation中真正的主力么?...这是因为当使用类似关键帧动画的动画时,你会将其放置到你想要动画的layer上,而且一般这个layer是UIView对象的组成部分。想要动画一个展示照片的UIImageView?动画它的layer。...还有一个要注意的重点是你没有在JNWSpringAnimation中像之前在基于block的UIView动画中一样设置持续时间。...阻尼、刚度和质量三个属性或产生一个一旦系统的力学到达最终值就会在最终值安定下来的弹簧动作。如果你想要缩短你动画的持续时间,就需要调整弹簧的属性才能快一点到达最终值,一般来说会增加弹簧的阻尼属性。

    43120

    从案例出发,由浅到深了解 iOS 动画

    有手动设置交互效果,看起来像是动画,一般要用到插值。 至于动画框架,有 UIView 级别的,有功能强劲的 CALayer 级别的动画。...CALayer 级别的动画通过灵活设置的 CoreAnimation,CoreAnimation 的常规操作,就是自定义路径 当然有苹果推了几年的 UIViewPropertyAnimator, 动画可交互性做得比较好...,然后对四个控件,做移位操作 用简单的关键帧动画,处理要优雅一点 * * * 例子三:地图定位波动 [strip] 看上去有些眼花的动画,可以分解为三个动画 [image] 一波未平,一波又起,做一个动画效果的叠加...,就成了动画的第一幅动画 一个动画波动效果,效果用到了透明度的变化,还有范围的变化 范围的变化,用的就是 CoreAnimation 的路径 path CoreAnimation 简单设置,就是指明 from...约束动画要注意的是,确保动画的起始位置准确,起始的时候,一般要调用其父视图的 layoutIfNeeded 方法,确保视图的实际位置与约束设置的一致。

    78330

    Core Animation总结

    从开始延迟几秒的话,设置为【CACurrentMediaTime() + 秒数】 的方式 duration 动画的时长 speed 动画运行速度(如果把动画的duration设置为3秒,而speed设置为...动画对象采用您指定的关键帧,并通过在给定时间段内从一个值插值到下一个值来构建动画。...在整体动画的百分比) endProgress 动画终点(在整体动画的百分比) ps:如果不需要动画执行整个过程(动画执行到中间部分就停止),可以指定startProgress,endProgress属性...将两个动画链接在一起,只需将第二个动画的开始时间设置为第一个动画的结束时间。 每个图层都有自己的本地时间,用于管理动画计时。...将两个动画链接在一起的方法是将一个动画的开始时间设置为与另一个动画的结束时间相匹配。如果延迟动画的开始,则可能还需要将fillMode属性设置为kCAFillModeBackwards。

    1.3K10

    iOS动画-CALayer隐式动画原理与特性

    Core Animation的一个非常显著的特性是就是实现动画,而且它支持隐式动画和显式动画两种形式,本篇我们主要从隐式动画说起; 本篇主要内容: 1.何为隐式动画 2.隐式动画原理-事务与图层行为...3.隐式动画的关闭与显示 4.隐式动画自定义图层行为 一、何为隐式动画?...二、隐式动画的原理 当我们改变一个CALayer属性时,Core Animation是如何判断动画类型和持续时间呢?实际上动画执行的时间取决于当前事务的设置,动画类型则取决于图层行为。...动画属性设置了隐式动画,但UIView把它关联的图层的这个特性给关闭了。...最后,如果在style也找不到对应的行为,那么图层将会直接调用定义了每个属性的标准行为的+defaultActionForKey:方法 从流程上分析来看,经过一次完整的搜索动画之后,-actionForKey

    4.7K51

    iOS动画系列之七:实现类似Twitter的启动动画1. CAKeyframeAnimation2. CAAnimationGroup3. 实现类似Twitter的启动动画

    所以今天咱们的重点到了第七章,CAKeyFrame Animation和CAAnimation Group。...这样也是为了训练自己,前段时间发现自己有时候会不自觉的把两种语言混在一起,这个习惯特别不好,所以想用这种方式自己纠正一下。到最后更新写文章的时候反而更轻松了,因为不用动脑。...创建步骤: 创建关键帧动画对象 设置属性 添加到要作用的layer上 如果使用rect椭圆的方式,动画会不连贯,停顿一下。...我们试着做一个包行旋转、缩放、按一定弧度路径组合在一起的动画。效果如下: ?...3.2 CALayer的遮罩属性 CALayer本身有一个属性,叫mask。

    1.4K30

    绘图-CAShapeLayer、CABasicAnimation以及核心动画

    startProgress -> 动画起点进度(整体的百分比)。 endProgress -> 动画终点进度(整体的百分比)。 filter -> 自定义转场。...CAAnimationGroup 顾名思义,这是一个动画组,它允许多个动画组合在一起并行显示.比如这里设置了两个动画, 把他们加在动画组里,一起显示.例如你有几个动画,在动画执行的过程中需要同时修改动画的某些属性...; 如果同时设置了byValue 和toValue,那么动画就会从toValue - byValue过渡到toValue; 如果只设置了fromValue,那么动画就会从fromValue...过渡到当前的value; 如果只设置了toValue ,那么动画就会从当前的value过渡到toValue; 如果只设置了byValue ,那么动画就会从从当前的...在这个动画里,是设置了要旋转到的弧度,根据以上规则,动画将会从它当前的弧度专旋转到我设置的弧度.

    2.9K30

    老司机带你走进Core Animation 之图层的透视、渐变及复制

    我想你一定猜到了,就是对给定的矩阵在其现有基础上进行指定的变换。 值得注意的是,以上两个旋转api中x/y/z三个参数均为指定旋转轴,可选值0和1,0代表此轴不做旋转,1代表作旋转。...这个数是用来控制图层变换后的景深效果的,也就是透视效果。 M34 上面的图片分别展示了具有透视效果的旋转及动画。...---- startPoint endPoint 是颜色过渡的方向,会沿着起点到终点的向量进行过渡。...矩形渐变层 所以说看到这你就知道了吧,两个拼一起的CAGradientLayer,然后用一个shapeLayer做了一个mask就成了环形的过渡层了。...他能复制图层的所有属性,包括动画。 使用起来很简单,从他的属性一一看: instanceCount 实例数,复制后的实例数。

    75840

    iOS 事件处理机制与图像渲染过程

    比如一个动画是更改alpha值从0到1,那么在逻辑树上此属性会被立刻更新为最终属性1,而在动画树上会根据设置的动画时间从0逐步变化到1); 渲染树(其属性值就是当前正被显示在屏幕上的属性值); CADisplayLink...当一个触摸事件到来时,RunLoop 被唤醒,App 中的代码会执行一些操作,比如创建和调整视图层级、设置 UIView 的 frame、修改 CALayer 的透明度、为视图添加一个动画;这些操作最终都会被...Core Animation通常对CALayer的所有属性(可动画的属性)做动画,但是UIView是怎么把它关联的图层的这个特性关闭了呢?...iOS提供了Core Animation框架,只需要开发者提供关键帧信息,比如提供某个animatable属性终点的关键帧信息,然后中间的值则通过一定的算法进行插值计算,从而实现补间动画。...当它的属性(比如frame/transform)改变后,它并不会立刻同步到其持有的 view 或 layer 去,而是把被改变的属性保存到内部的一个中间变量,稍后在需要时,再通过某个机制一次性设置到内部的

    5.6K100

    【IOS开发进阶系列】动画专题

    CALayer有一个叫做doubleSided的属性来控制图层的背面是否要被绘制。这是一个BOOL类型,默认为YES,如果设置为NO,那么当图层正面从相机视角消失的时候,它将不会被绘制。....从CALayer(CA = Core Animation)类名来看就可以看出iOS的Layer就是为动画而生的,便于实现良好的交互体验....你将一个动画看作一个环,timeOffset改变的其实是动画在环内的起点,比如一个duration为5秒的动画,将timeOffset设置为2(或者7、模5为2),那么动画的运行则是从原来的2秒开始到5...设置了动画的起点和终点之后,中间的值都是通过插值方式计算出来的。插值计算的结果由timingFunction指定,默认timingFunction为nil,会使用liner的,也就是变化是均匀的。...2.CAKeyframeAnimation         Keyframe顾名思义就是关键点的frame,你可以通过设定CALayer的始点、中间关键点、终点的frame,时间,动画会沿你设定的轨迹进行移动

    57910

    Quartz2D复习(四) --- 图层CALayer和动画CAAnimation

    如果想让图层保持显示动画执行后的状态,那就设置为NO,   不过还要设置fillMode为kCAFillModeForwards   fillMode : 决定当前对象在非activate时间段的行为。...: keyPath相应属性的初始值   toValue: keyPath相应属性的结束值   动画过程说明: 随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue...如果没有设置keyTimes,各个关键帧的时间是平分的 12)、CAAnimationGroup --- 动画组   动画组,是CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup...默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间 13)、转场动画 --- CATransition   CATransition是CAAnimation...  subtype : 动画过度方向   startProgress : 动画起点(在整体动画的百分比)   endProgress : 动画终点(在整体动画的百分比)   转场动画过度效果: ?

    1.5K30
    领券