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

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

Group(OC和Swift两版) 1....实现类似Twitter的启动动画 3.1实现思路 1,在View上设置一个东西能够遮挡住背景图; 2,把遮罩变成五角星; 3,让遮罩慢慢变大,中间可见区域越来越大。 yes!思路就是这样的。...3.2 CALayer的遮罩属性 CALayer本身有一个属性,叫mask。...一个是给背景图片的UIImageView设置了mask,另一个是直接给Controller的View设置了mask。设置这两个有神马区别咩? 好,下篇其实有一个重头,就是CAShapeLayer。...因为在工作中碰到的大部分动画都是通过UIView的动画block实现,其他都基本上都是需要用到CAShapeLayer。我们下次玩点好玩的吧~ 如果还有兴趣,可以看看本系列的其他文章哈。

1.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

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

前言 有时你会看到很多镂空的试图或者是镂空视图动画效果,感觉很酷炫,其实只要掌握其中实现的原理,想实现怎样的效果就能实现怎样的镂空效果。 原理解析 UIView的maskView属性。...(1) 这里特别强调下,当CAShapeLayer没有设置backgroundColor时,(默认为backgroundColor = [UIColor clearColor].CGColor),CAShapeLayer...maskLayer.contents = (id)[UIImage imageNamed:@"123456"].CGImage; self.waveView.layer.mask = maskLayer; 使用了图片作为遮罩图层...,self.waveView为一个水波上涨的自定义试图,其中水波的上升效果是通过核心动画CAShapeLayer的path动态绘制实现的,先了解更多的可以看我的其他两篇文章: 绘图-视图遮罩MaskView...positionWave"]; [self.waveCosLayer addAnimation:animation forKey:@"positionWave"]; 使用CABasicAnimation设置动画使波浪图层上移

2.1K20

绘图-视图遮罩MaskView的使用

---- 在UIView中有一个maskView属性,我们可以利用这个属性很方便的做出一些有意思的效果 这个属性在iOS8之后开始使用,用来表示视图遮罩。 ?...效果.png 这个效果的实现关键点在于 动画执行时间的延迟设置,这个时间的计算和设置,直接决定效果能否缓缓出来,因为代码的执行速度是很快的,而动画又是移步执行的,如果设置动画的执行时间为0,你会看到图片瞬间改变...可以结合CAGradientLayer用来实现颜色滚动渐变 初始化一个CAGradientLayer 设置一个CABasicAnimation 用来做CAGradientLayer 的动画 CAGradientLayer.mask...滑动.gif 此处只做思路的介绍,查看具体源码可以参看这篇文章: http://www.jianshu.com/p/f0c198e8de91 当然也可以结合CAShapeLayer用来实现自己想要的任意效果...path); [shapeLayer setPath:path]; CFRelease(path); self.layer.mask = shapeLayer;//layer的mask,顾名思义, } 视图初始化的时候调用即可

2K20

iOS Core Animation的用法

一般来说,layer可以有两种用途,二者不互相冲突:一是对view相关属性的设置,包括圆角、阴影、边框等参数;二是实现对view的动画操控。...RemovedOnCompletion 这个属性默认为 true,那意味着,在指定的时间段完成后,动画就自动的层上移除了。这个一般不用。假如你想要再次用这个动画时,你需要设定这个属性为 false。...新视图把旧视图推出去 kCATransitionReveal 将旧视图移开,显示下面的新视图 2.用字符串表示 pageCurl 向上翻一页...,可选值如下: kCATransitionFromTop 顶部开始 kCATransitionFromBottom 底部开始 kCATransitionFromLeft...) //动画的持续时间 animation.duration = duration //设置重复次数,HUGE可看做无穷大,起到循环动画的效果 animation.repeatCount

1.3K30

绘图-类似百度外卖波浪效果的实现与关键点解析

CADisplayLink可以确保系统渲染每一帧的时候我们的方法都被调用,从而保证了动画的流畅性....CADisplayLink 默认每秒运行60次,将它的frameInterval属性设置为2,意味CADisplayLink每隔一帧运行一次,变为每秒运行30次, 使用场合相对专一,适合做UI的不停重绘...,比如自定义动画引擎或者视频播放的渲染。...CADisplayLink 了解更多 实现的主要过程: 使用CADisplayLink 注册定时器 创建两个图层,一个为前面的实浪图层,一个为后面的遮罩浪图层。...设置两个图层的大小相同,高度都是一个浪的高度 在定时器的绑定方法中 使用 正弦曲线函数和for 方法绘制路径 把绘制好的路径分别赋给两个图层。 设定好“船”的 y坐标。

66130

学会不一样的Loading图

) CAShapeLayer *maskLayer = [CAShapeLayer layer]; maskLayer.path = totalCoverablePath.CGPath;...whiteColor].CGColor; colorLayer.mask = maskLayer; 1、 添加覆盖控件的覆盖层 2、 添加渐变色图层到挡住控件的覆盖层 3、为渐变色图层设置...也就是说在遮罩层中有对象的地方就是“透明”的,可以看到被遮罩层中的对象,而没有对象的地方就是不透明的,被遮罩层中相应位置的对象是看不见的。 它的原理是:上面一层是遮罩层,下面一层是被遮罩层。...上述代码,得出如下效果: 上述效果,其实很多app就单纯这样使用了,但是我们为了更美化,决定为其增加动态效果 3、为渐变层增加动态效果 // 动画 animate CABasicAnimation...= 0.7; animation.repeatCount = HUGE; [animation setRemovedOnCompletion:NO]; // 为渐变层增加添加动画

89540

iOS动画三板斧(二)--CoreAnimation动画介绍使用附加

fillMode 是个枚举值(四种),当removedOnCompletion设置为NO之后才会起作用。可以设置layer是保持动画开始前的状态还是动画结束后的状态,或是其他的。...(包括CAAnimationGroup),需要注意的是animations里的动画设置了duration之后动画可能会有不同,一般里面不设置,在最外层设置group的duration即可。...示例代码可能与gif图不太一致,因为gif图是其他demo中录制下来的。...有三种方式:1、直接使用UIBezierPath的方法;2、使用CoreGraphics绘制;3、利用CAShapeLayer绘制。 示例代码如下,绘制一个右侧为弧型的视图: ?...进度条.gif 上图这样的视图是用UIBezierPath用多个CAShapeLayer制作出来的,而动画效果只需要改变进度的layer的strokeEnd和修改下面代表水面进度的视图位置即可。

1.1K40

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

removedOnCompletion -> 是否让图层保持显示动画执行后的状态,默认为YES,也就是动画执行完毕后涂层上移除,恢复到执行前的状态,如果设置为NO,并且设置fillMode为kCAFillModeForwards...,那么动画就会fromValue过渡到fromValue + byValue; 如果同时设置了byValue 和toValue,那么动画就会toValue - byValue过渡到toValue...; 如果只设置了fromValue,那么动画就会fromValue过渡到当前的value; 如果只设置了toValue ,那么动画就会当前的value过渡到toValue...; 如果只设置了byValue ,那么动画就会当前的value过渡到当前value + byValue....在这个动画里,是设置了要旋转到的弧度,根据以上规则,动画将会它当前的弧度专旋转到我设置的弧度.

2.7K30

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

有手动设置交互效果,看起来像是动画,一般要用到插值。 至于动画框架,有 UIView 级别的,有功能强劲的 CALayer 级别的动画。...约束动画要注意的是,确保动画的起始位置准确,起始的时候,一般要调用其父视图的 layoutIfNeeded 方法,确保视图的实际位置与约束设置的一致。...这里动画效果的主要用到 strokeEnd 属性, 笔画结束 插值的时候,要注意,下一段动画的开始,正是上一段动画的结束 // 这个用来,主要的效果 let progressLayer = CAShapeLayer...return gradientLayer }() // 文字转图片,然后绘制到视图上 // 通过设置渐变图层的遮罩 `mask` , 为指定文字,来设置渐变闪烁的效果...animations = animations } return animationGroup } * * * 例子十一:动态图动画 [image] gif

70630
领券