之前讲过使用UIBezierPath在UIView的drawRect中绘图, 今天我们讲下另外一种方式: CAShaperLayer
1.CAShapeLayer简介 CAShapeLayer是一个通过矢量图形而不是bitmap来绘制的图层子类。 CAShapeLayer继承自CALayer,可以使用CALayer的所有属性值。 CAShapeLayer需要与 贝塞尔曲线 配合使用才有意义(这是个人经验)。 使用CAShapeLayer与贝塞尔曲线可以画出你想要的图形。 相对于Core Graphics绘制图片,使用CAShapeLayer有以下一些优点: 渲染快速。CAShapeLayer使用了硬件加速(使用CPU渲染),绘制同一
老司机带你走进Core Animation 之CAShapeLayer和CATextLayer
这篇文章通过使用CAShapeLayer和UIBezierPath来画出一个动态显示剩余流量的小动画。 最终实现的效果如下: Paste_Image.png 动态效果图: shapeLayerAni.
1、尝试设置_numberLab.clipsToBounds = YES;2、尝试设置 [self.numberLab layoutIfNeeded]; 之后再执行cornerRadius
如图[上报]背景图右边圆角,当然切图也是可以的,写一个UIView的分类就可以实现。
有时你会看到很多镂空的试图或者是镂空视图的动画效果,感觉很酷炫,其实只要掌握其中实现的原理,想实现怎样的效果就能实现怎样的镂空效果。
这是一个网上出过文章的例子,很多人都写过,但是大都是拷贝一个人作者的原文,这篇文章主要的目的是为了细致解析效果实现的关键点,以及提供有详细注释的Dome。给有需要的朋友提供思路。
它类似于一个子图层,相对于父图层(即拥有该属性的图层)布局,但是它却不是一个普通的子图层。
下面是我用上面的代码实现的最终效果,startPoint是(0,0),endPoint是(1,1)。
在开发中我们会遇到各种统计图,或者各种绘图,本文通过对基本三大统计图:折线图、柱状图、扇形图的实现来掌握基本统计图的绘制,在下一篇文中会带来复杂一些的绘图案例分析,循序渐进达、触类旁通达到绘制各式各样图表的能力。
QeartzCore是iOS中的图层框架,Quartz Core 的渲染能力可以像三维一样对二维图像进行任意操纵,在这个框架中我们可以对试图的图层进行定制,以实现我们想要的效果。 下面看一下这个框架中的类文件有哪些:
前言 实现了一款时下比较流行的环状进度动图,以下是源码解析 使用 Core Graphics 和 定时器 实现环形进度动图 圆环进度.gif 核心源码 # 使用 [self setNeedsDisp
1.使用layer去实现, 见http://blog.csdn.net/johnzhjfly/article/details/39993345
首先要做的就是用CAShapeLayer画一个圆。这里先创建一个路径,把圆的中心放在视图的中心,半径设为100,然后设置起始角度和结束角度,并将clockwise设为true。
我们给一个View设置圆角一般都是用如下代码 // 设置layer超出父图层的部分剪切掉 self.cornerView.layer.masksToBounds = YES; // 设置圆角半径,若imageView1为正方形,设置圆角半径为边长的一半可实现圆效果 self.cornerView.layer.cornerRadius = 20.0; 但是如果需求是只要左上和右上圆角以上方法肯定不能实现,直接上代码 UIBezierPath *bezierPath = [UIBezierPath bezier
CAShapeLayer *border = [CAShapeLayer layer];
CAEmitterLayer是CoreAnimation框架中的粒子发射层,在以前的一片博客中有详细的介绍和范例,这里不再重复,地址如下:
主要代码如下: #import "MOAnnularProgressView.h" @implementation MOAnnularProgressView { CAShapeLayer *backgroundLayer; // 背景图层 CAShapeLayer *frontFillLayer; // 填充图层 UIBezierPath *backgroundPath; // 背景贝赛尔曲线 UIBezierPath *frontFillPath; // 填充贝赛尔
越上层,封装程度越高,动画实现越简洁越简单,但是自由度越低;反之亦然。本文着重介绍Core Animation层的基本动画实现方案。
良好的虚线和圆角视觉效果,会为一个好的app增加美感。iOS虚线,一般是用CAShapeLayer设置其lineWidth、lineDashPattern等属性,然后加载到容器里面,下面是封装好的函数,仅供参考。
自定义一个UIBezierPath的子类 LGPaintpath,下面是它的初始化方法
大家都知道这是通过 CAShapeLayer 和 CABasicAnimation 结合起来实现的,可是其中还是有需要注意的地方,实现的步骤大致如下:
导入该分类,将button的属性drawHexagon设为YES,就会将该按钮画成六边形了,并且可点击访问也是在六边形内。
可以这样理解,是将maskView每个point的alpha赋值给View的重叠部分相对应的point,这样view的重叠每个point都有个alpha值了,view重叠部分就可能显示多种透明色。
有很多开源的进度条不用,非要弄这种效果,就不吐槽了,还是想想怎么实现 废话就不多说了 直接上代码
呼哧,终于今天到了最后一篇啦,也是醉了,弄了两三个月。从最开始计划只写三篇就好了,结果自己没把握好,一点点加成了今天这个样子。因为增加的内容太多,也差点变成太监文,不过好在没有放弃自己。所以各位行行好,要是看上去觉得还不错,就点个赞,打赏小的点儿。这玩意儿写的我是头发乱发,两眼通红。哇哇哇哇~ 接下来要写啥,确实还没想好。现在的感觉就是胸口的一块大石头没有了,要去尽情的嗨皮!!!! 之前在一个网站上看到了一个HTML5/SVG实现的过山车动画,点这里看网页版。 觉得很棒,想想咱们iOS也完全可以实现,正好还
有时候为了设计的美观我们需要将一些控件的某几个角设置为圆角,很多朋友就会开始挠头不知道怎么去弄,我们知道设置四个角都为圆角很简单,创建一个view,设置其layer.cornerRadius即可,代码如下:
CGPoint pathCenter = CGPointMake(_logoView.frame.size.width/2, _logoView.frame.size.height/2 - 50);
这个方法是用来画圆的,这个方法就引出第一个知识点 startAngle 和 endAngle ,按照通俗的方法就是画的圆的起点的角度和结束点的角度。也就是我们的 0 - 2π ,最后一个参数是 是否顺时针。
iOS中有一些特殊的layer,也可以做一些动画效果,本文就补充两个可以做动画效果的layer: CAEmitterLayer 和 CAReplicatorLayer。
在各类线上教育系统中,往往会包含知识付费模块,这些模块中,网课的章节通常会以列表的方式展现。那么列表中的分区构成是如何通过代码实现的呢?接下来,小编就带大家看看,在IOS版本的线上教育系统开发中,tableview列表分区的实现方式。
https://github.com/helloted/Demo_for_WebSite/tree/master/DrawLineDemo
从记账的需求出发,该界面需要用户输入以下账单信息: (1)账单金额 (2)账单类型 (3)相关账户 (4)账单产生的日期 (5)备注 那么,结合一下需求,开始构思一下界面如何搭建吧。
// 滑动时按需加载, 防止卡顿 配合SDWebImage https://github.com/johnil/VVeboTableViewDemo
http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/ https://github.com/ole/Animated-Paths
WWDC 2013 session 218: Custom Transitions Using View Controllers
从CSDN下载Demo源码:https://download.csdn.net/download/u011018979/19260280
进度条相信我们大家都不陌生,往往我们很多时候需要使用到圆形进度条。这篇文章给大家分享了利用ios如何快速实现环形进度条,下面来一起看看。
今天帮朋友写了一个小巧的圆弧进度控件,控件十分简单,主要设计思路采用CAShapeLayer来创建控件圆弧形状,使用CAGradientLayer来进行颜色渐变的渲染,两者结合来创建出颜色渐变的圆弧进度条控件,关于进度动画采用CoreAnimation动画处理。控件进行了简洁的封装,提供了面向使用的接口,需要的朋友可以自取,Demo地址如下:
我们可以看到上图的动图是一组组合动画,共有四部分组成:坐标横竖虚线的动画、曲线的动态绘制、小圆点的动画、渐变区域的动画。下面逐个分析
使用方法 使图层覆盖在应用图标上方,大小为app图标的bounds -(ICSectorProgressView *)sectorView { if (!_sectorView) { _sectorView = [[ICSectorProgressView alloc] initWithFrame:self.appImageView.bounds]; _sectorView.borderWidth = 20; // 默认为20 [_sectorVi
最近手痒又想整点动画玩玩,但是想了几个主意发现稍微复杂一点的手写都一定会累爆。这篇文章记录一下今天折腾的一个方案。说来简单,就是用矢量设计工具舒舒服服的做好设计,然后输出成 svg 格式,再用 NSXMLParser 去读出来,转换成 UIBezierPath ,然后就天高任鸟飞~
介绍 记录、总结开发遇到一些问题,大家一起交流学习。 这次带来,对直播APP的常用动画总结。 直播Live 效果展示 下面是一个很多平台都有的入门豪华礼物动画——烟花。 一个复杂的礼物动画,首先
水波.gif 上面的效果主要用到了CALayer的一些子类,CGConTextRef ,贝塞尔曲线和CADisplayLink等 。。。 Demo里封装好的,可以直接拿来用! 网上关于这些的资料特别多,我就不在这啰嗦了,给几个链接,自行修炼去吧..... 几种常用Layer的使用解析 贝塞尔曲线与CAShapeLayer简单使用 CADisplayLink结合UIBezierPath的神奇妙用 http://www.jianshu.com/p/c35a81c3b9eb Core Animatio
总结:能看到的都是uiview,uiview能显示在屏幕上是因为它内部的一个层calyer层。
第二板斧就是用的最多的CoreAnimation动画库,简称是CA,所以动画类都是CA开头。所有的动画类都在 QuartzCore 库中,在iOS7之前使用需要#import <QuartzCore/QuartzCore.h>,iOS7之后系统已经将其自动导入了。CoreAnimation动画都是作用在layer上。 先来看下动画类的层级关系:
高仿系统指南针,方向数据是地磁航向数据,有定位地理位置信息和地磁方向信息,可以和系统的指南针对比看一看。 一、运行效果 总效果.gif 效果.png 二、实现过程 1.继承于UIView创建一个带
领取专属 10元无门槛券
手把手带您无忧上云