首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    直播APP常用动画效果

    一个复杂的礼物动画,首先是美术给出gif实现草图和素材,技术进行动画剖析和图片压缩,在程序中加载图片和实现动画,其中要注意内存和CPU占用。 ?...AnimationImageCache类是一个动画图片加载类,用单例实现且内部用NSCache持有引用。 注意,当收到内存不足警告时,NSCache会自动释放内存。...天使 时间轴实现 为了让动画按照时间顺序一一执行,可以把动画按时间和对象分成多个方法,通过GCD在指定的时间调用。...1、视图变暗、变大 alpha值属性是透明度,把背景设置成淡黑色,然后调整alpha可以达到背景渐变的视图效果; UIView的transform是可以用仿射变换矩阵来控制平移、放大缩小等。...出现、烟花爆炸、画卷打开等效果,通过改变遮罩的大小,影响原始图片的展示,达到动画的效果; 先新建一个CAShapeLayer,并设置为layer的遮罩; 新建一个动画,设定初始和结束状态并赋值给CAShapeLayer

    1.6K80

    iOS CALayer 简单介绍

    https://www.jianshu.com/p/09f4e36afd66 什么是CALayer: 总结:能看到的都是uiview,uiview能显示在屏幕上是因为它内部的一个层calyer层。...在创建uiview的时候,uiview的内部会自动创建一个层(calayer对象)通过uiview的layer属性可以访问这个层。...当uiview需要显示在屏幕上时,会调用drawrect 方法进行绘制,并将所有的内容绘制在自己的层上,绘制完毕之后,系统会将层拷贝到屏幕上,于是uiview就显示了。...换句话说,uiview本身并不具备显示功能,它的内部的层才有显示功能。 CALayer的基本功能 通过操作CALayer对象,可以调整uiview的一些外观属性。...[layer setMask:shapeLayer]; //设置圆环遮罩 [self.view.layer addSublayer:layer]; // // //动画

    65720

    iOS Core Animation的用法

    Autoreverses 当你设定这个属性为 true 时,在它到达目的地之后,动画的返回到开始的值,代替了直接跳转到 开始的值。...RemovedOnCompletion 这个属性默认为 true,那意味着,在指定的时间段完成后,动画就自动的从层上移除了。这个一般不用。假如你想要再次用这个动画时,你需要设定这个属性为 false。...这样的话,下次你在通过-set 方法设定动画的属 性时,它将再次使用你的动画,而非默认的动画。 Speed 默认的值为 1.0.这意味着动画播放按照默认的速度。...你指定诸如颜色和线宽等属性,用CGPath来定义想要绘制的图形,最后CAShapeLayer就自动渲染出来了。...当你给CAShapeLayer做3D变换时,它不像一个有寄宿图的普通图层一样变得像素化。 源代码地址 上面说的所有动画源代码地址

    1.4K30

    使用CAShapeLayer绘图

    之前讲过使用UIBezierPath在UIView的drawRect中绘图, 今天我们讲下另外一种方式: CAShaperLayer 先说说使用CAShapeLayer的优点: GPU执行, GPU执行...按照之前的思路是创建一个UIView子类, 用UIBezierPath画一个外围的不闭合圆弧, 在画中间点圆 代码量不是很多弹也不少, 那假如用CAShapeLayer实现时怎么样子的呢?...layer]; circle.bounds = CGRectMake(0, 0, 100, 100); //设置大小 circle.position...比如hud这个, 我们之前用UIBezierPath在UIView的DrawRect中画画过, 相对比较简单 我们用CAShapeLayer事实看。...思路是在绿色的CALayer上面放一个红色的CAShapeLayer, 然后逐渐增加CAShapeLayer的填色大小 上代码: #import "ViewController.h" static CGFloat

    1.2K10

    绘图-几个较复杂统计图案例的实现分析

    下面逐个分析 坐标横竖虚线的动画 第一步设置一个 CAShapeLayer 并设置 .lineDashPattern 属性,使之成为虚线。...小圆点的动画 根据数据源,在每一数据点处放上一个自定义UIView,在此自定义UIView的drawRect中绘制圆形图形,并且设置 shape.layer.opacity = 0;,即让这些小圆点(...,但是动画结束后我们需要它显示,所以在动画的代理里 设置动画的 layer.opacity = 1.0;使其一直显示。...在使用drawRect:重绘页面时注意首先移除已有的图层maskLayer 同时做动画。...(4) 在弹性动画的执行期间,定时器会不断的获取某一时刻的所有的子视图的 坐标 ,并修改 曲线上的点的位置的坐标,并根据 currentLinePathForWave 这个方法绘制出 渐变图层的 mask

    1.5K20

    iOS Core Animation:Advanced Techniques

    当你给CAShapeLayer做3D变换时,它不像一个有寄宿图的普通图层一样变得像素化。 创建一个CGPath CAShapeLayer可以用来绘制所有能够通过CGPath来表示的形状。...我们把改变属性时CALayer自动应用的动画称作行为,当CALayer的属性被修改时候,它会调用-actionForKey:方法,传递属性的名称。...这是因为你设置的属性并没有直接调整图层的外观,相反,他只是定义了图层动画结束之后将要变化的外观。 在iOS中,屏幕每秒钟重绘60次。...你甚至设置一个叫做autoreverses的属性(BOOL类型)在每次间隔交替循环过程中自动回放。...那么你会疑惑为什么这不是默认的选择,实际上当使用UIView的动画方法时,他的确是默认的,但当创建CAAnimation的时候,就需要手动设置它了。

    1.9K30

    UI篇-Layer几个关键点补充

    摘自官网的一句话-Layers Provide the Basis for Drawing and Animations(Layers是绘图和动画的基础) Layer是在3D空间中的2D平面。...** Layer支持继承,支持添加Sublayer,支持对sublayer进行层次调整** 常用的Layer子类 CAEmitterLayer 发射器层,用来控制粒子效果 CAGradientLayer...梯度层,颜色渐变 CAEAGLayer 用OpenGL ES绘制的层 CAReplicationLayer 用来自动复制sublayer CAScrollLayer 用来管理可滑动的区域...CAShapeLayer 绘制立体的贝塞尔曲线 CATextLayer 可以绘制AttributeString CATiledLayer用来管理一副可以被分割的大图 CATransformLayer...不同,Layer主要由三个属性来设置位置(极少用Frame): bounds - 设置大小 anchorPoint -设置锚点(锚点对后续的layer动画有很大影响,默认(0.5,0.5)) position

    90710

    iOS开发CoreAnimation解读之二——对CALayer的分析

    6.CAShapeLayer CAShapeLayer可以让我们在layer层是直接绘制出自定义的形状。 7.CATextLayer CATextLayer可以通过字符串进行文字的绘制。...三、设置与调整Layer层的内容 设置层的内容有下面三种方式: 1.可以通过设置CGImage为layer的内容。 2.可以通过代理方法来动态修改或者绘制层的内容。...当你设置了Layer的内容后,例如设置了一张图片,内容的尺寸不一定会刚好和layer的尺寸合适,我们可以对其位置的调整,使其达到我们想要的效果,contentsGravity属性决定了内容对齐与填充方式...nullable id)presentationLayer; //模型层layer - (id)modelLayer; 对于presentationLayer,这个属性不一定总会返回一个实体对象,只有当进行动画或者其他渲染的操作时...id)[UIColor redColor].CGColor;     }     return [super defaultValueForKey:key]; } //这个方法也只使用在子类中重写,用于设置在某些属性改变时是否进行

    1.1K20

    绘图- 镂空效果及其动画实现解析

    前言 有时你会看到很多镂空的试图或者是镂空视图的动画效果,感觉很酷炫,其实只要掌握其中实现的原理,想实现怎样的效果就能实现怎样的镂空效果。 原理解析 UIView的maskView属性。...通过控制UIView的maskView、CALayer的mask有效区域,都可以修改UIView和 UIView的layer的显示外形,从而得到镂空或者其他的奇特形状及其动画。...实现关键点 图层中,因为UIView的layer为CALayer,不像CAShapeLayer那样有Path属性,所以我们无法直接修改layer的的显示形状,唯一能是layer显示出奇特形状的方法只有两种...(1) 这里特别强调下,当CAShapeLayer没有设置backgroundColor时,(默认为backgroundColor = [UIColor clearColor].CGColor),CAShapeLayer...positionWave"]; [self.waveCosLayer addAnimation:animation forKey:@"positionWave"]; 使用CABasicAnimation设置动画使波浪图层上移

    2.2K20

    iOS动画-CAAnimation使用详解

    被设置为NO的动画结束时,我们会遇到这样一个问题:被设置动画的属性应该是什么值?...; 另外,removedOnCompletion设置为NO时,直到我们手动移除动画,否则动画将不会自动释放;所以通常我们此时会给动画添加一个非空的键,这样可以在不需要动画的时候把它从图层上移除; 四、CAPropertyAnimation...所以,苹果将CATransition作为设置CALayer的contents属性时的默认行为,对图层contents图片做的改动都会自动附上淡入淡出的效果,这也就解释了隐式动画的原理; 但注意: 1...九、委托模式下的动画区分 对于CAAnimation而言,使用委托模式而不是一个完成块会带来一个问题,那就是设置多个动画时,无法在回调方法中区分。...,图层的外观就立刻更新到当前的模型图层的值; 2.动画通常默认结束之后被自动移除,除非设置了removeCompletion为NO; 3.动画若设置为结束之后不自动移除,那么我们在不需要的时候需手动移除

    2.4K10

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

    其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层,在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 @...不同于UIView,当图层显示在屏幕上时,CALayer不会自动重绘它的内容。它把重绘的决定权交给了开发者。    ...因为当UIView创建了它的宿主图层时,它就会自动地把图层的delegate设置为它自己,并提供了一个-displayLayer:的实现,那所有的问题就都没了。        ...在iOS6中,苹果介绍了自动排版机制,它和自动调整不同,并且更加复杂。        ...我们真正想要的是一个用CATextLayer作为宿主图层的UILabel子类,这样就可以随着视图自动调整大小而且也没有冗余的寄宿图啦。

    56910

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

    重点是这里有一个初学者经常会犯的错误,同学们在绘制曲线的时候经常会以layer在父图层中的相对位置去绘制曲线,这是错的!!!应该以layer自身的坐标系划线。...请记住,在iOS中,以x轴正方向(即水平向右)为0度,顺时针旋转一周为360度。 其实说到这里CAShapeLayer的基本用法就结束了。 你这么说,意思是还有特殊用法咯?...因为写这个demo时没有考虑到做暂停。 那这个怎么做呢? 把它分成两部分吧,一部分外面不变那部分,一部分中间变那部分。 这时候我们就要考虑如何画出一个空心的图层。...系统会按照给定数组自动重复设置虚线。 lineDashPhase这个属性是告诉系统从多少开始计算这个距离。比如上图中第一段实现的距离明显小于5,其实他是2,因为我们从3开始计算,5 - 3就剩2了。...对咯,就是以一个CATextLayer做红色的CALayer的mask,CATextLayer的字体设置有颜色,背景设置透明色,这样就只能显示出红色的CALayer的文字部分了把他封装在一个UIView

    1.5K20

    实践-小效果 Ⅳ

    按钮.gif 使用 CAShapeLayer UIBezierPath 和 CABasicAnimation动画实现 @property (nonatomic, strong) CAShapeLayer...就可以改前景色为红色了,同样那个accessoryCheckmark的颜色就变成红色了 此时,点击行即可选中,取消选中,但是滚动一下视图吧,你会发现下面某些未被点击的行也已经被标记了,这是因为cell的重用机制造成的,在第一篇文章中就这个问题有提到过...解决cell重用问题,在cellForRow方法中,定义cellIdetifier时,将其每一行都定义为不同的值,就不会出现覆盖,重复等现象了 NSString *cellIdentifier =...自动移动.gif 之前使用如下方法一直出现抖动的Bug; if (self.tableView.contentSize.height > self.tableView.frame.size.height...NO,动画可能会影响到scrollerView,导致增加数据源之后,tableView到处乱跳 9.左右摇晃的动画 ?

    63720
    领券