IOS Animation-贝塞尔曲线与Layer简单篇

swift篇

1.介绍

贝塞尔曲线:

  贝塞尔曲线是计算机图形图像造型的基本工具,是图形造型运用得最多的基本线条之一。它通过控制曲线上的四个点(起始点、终止点以及两个相互分离的中间点)来创造、编辑图形。

  一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。

Layer:

  CALayer(层)是屏幕上的一个矩形区域,在每一个UIView中都包含一个根CALayer,在UIView上的所有视觉效果都是在这个Layer上进行的。Layer有很多种,最常用也是最基本的是CALayer。

  Layer是处理‘绘制’的事情,把它想象成一个画布。View相当于ps中的图片,layer相当于图片view的图层。view是通过layer画出的,view是layer的代理。

2.简单代码编写

1)简单在view上加一层layer。

     func addSubLayer() {
let layer = CAShapeLayer();//定义一个layer
layer.frame = CGRectMake(, , , );//坐标
layer.backgroundColor = UIColor.blueColor().CGColor;//CG颜色
self.view.layer.addSublayer(layer);//在view上添加layer
}

2)通过赛贝尔曲线,画一个矩形在layer上面

     func addBezierWithRect() {
let layer = CAShapeLayer() //新建layer
let path = UIBezierPath.init(rect: CGRectMake(, , , )) //初始化bezier曲线--矩形
layer.path = path.CGPath //在layer上赋予曲线的路径
layer.fillColor = UIColor.clearColor().CGColor //layer的填充颜色
layer.strokeColor = UIColor.blueColor().CGColor //layer的边框颜色
self.view.layer.addSublayer(layer) //添加layer
}

3)画一个圆角的矩形

     func addBezierWithRoundRect() {
let layer = CAShapeLayer()
let path = UIBezierPath.init(roundedRect: CGRectMake(, , , ), cornerRadius: ) //定义圆角矩形
layer.path = path.CGPath
layer.fillColor = UIColor.clearColor().CGColor
layer.strokeColor = UIColor.redColor().CGColor
self.view.layer.addSublayer(layer)
}

4)画一个圆形

     func addBezierWithCircular() {
let layer = CAShapeLayer()
let circularPath = UIBezierPath(arcCenter: CGPoint.init(x: ,y: ), radius: , startAngle: , endAngle: CGFloat(*M_PI), clockwise: true)//定义一个圆形
layer.path = circularPath.CGPath
layer.fillColor = UIColor.clearColor().CGColor
layer.strokeColor = UIColor.greenColor().CGColor self.view.layer.addSublayer(layer)
}

5)画一条曲线

     func addBezierWithCurve() {
let startPoint = CGPoint(x: , y: )//曲线开始位置
let endPoint = CGPoint(x: , y: )//曲线终点位置
let controlPoint = CGPoint(x: , y: )//曲线中间位置 let layer = CAShapeLayer()
let quxianPath = UIBezierPath()
quxianPath.moveToPoint(startPoint) //首先移动到初始点
quxianPath.addQuadCurveToPoint(endPoint, controlPoint: controlPoint) //定义终点点和中间点
layer.path = quxianPath.CGPath
layer.fillColor = UIColor.clearColor().CGColor
layer.strokeColor = UIColor.greenColor().CGColor
self.view.layer.addSublayer(layer)
}

如果想结合动画来用,可以看文章:CAShapeLayer、UIBezierPath与Animation的结合

可以关注本人的公众号,多年经验的原创文章共享给大家。

IOS Animation-贝塞尔曲线与Layer简单篇(一)的更多相关文章

  1. iOS开发 贝塞尔曲线

    iOS开发 贝塞尔曲线UIBezierPath - 陌云 时间 2014-03-14 11:04:00  博客园-所有随笔区 原文  http://www.cnblogs.com/moyunmo/p/ ...

  2. iOS 使用贝塞尔曲线绘制路径

    使用贝塞尔曲线绘制路径 大多数时候,我们在开发中使用的控件的边框是矩形,或者做一点圆角,是使得矩形的角看起来更加的圆滑. 但是如果我们想要一个不规则的图形怎么办?有人说,叫UI妹子做,不仅省事,还可以 ...

  3. iOS开发 贝塞尔曲线UIBezierPath

    最近项目中需要用到用贝塞尔曲线去绘制路径 ,然后往路径里面填充图片,找到这篇文章挺好,记录下来 自己学习! 转至 http://blog.csdn.net/guo_hongjun1611/articl ...

  4. Android - Animation 贝塞尔曲线之美

    概述 贝塞尔曲线于1962,由法国工程师皮埃尔·贝塞尔所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计.贝塞尔曲线最初由Paul de Casteljau于1959年运用de Casteljau演算 ...

  5. iOS开发 贝塞尔曲线UIBezierPath(2)

    使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中 ...

  6. iOS:使用贝塞尔曲线绘制图表(折线图、柱状图、饼状图)

    1.介绍: UIBezierPath :画贝塞尔曲线的path类 UIBezierPath定义 : 贝赛尔曲线的每一个顶点都有两个控制点,用于控制在该顶点两侧的曲线的弧度. 曲线的定义有四个点:起始点 ...

  7. iOS开发 贝塞尔曲线UIBezierPath(后记)

    使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中 ...

  8. iOS开发——UI精选OC篇&UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍

    UIApplication,UIWindow,UIViewController,UIView(layer)简单介绍 一:UIApplication:单例(关于单例后面的文章中会详细介绍,你现在只要知道 ...

  9. iOS开发之画图板(贝塞尔曲线)

    贝塞尔曲线,听着挺牛气一词,不过下面我们在做画图板的时候就用到贝塞尔绘直线,没用到绘制曲线的功能.如果会点PS的小伙伴会对贝塞尔曲线有更直观的理解.这篇博文的重点不在于如何用使用贝塞尔曲线,而是利用贝 ...

随机推荐

  1. 动态加载js文件

    由于最近在弄echarts,关于地图类的效果,但是全国地图整体的js文件太大了,加载很耗费资源,所以要根据不同省份加载不同地区的js地图, 于是就想的比较简单, var script = docume ...

  2. 除法取模练习(51nod 1119 & 1013 )

    题目:1119 机器人走方格 V2 思路:求C(m+n-2,n-1) % 10^9 +7       (2<=m,n<= 1000000) 在求组合数时,一般都通过双重for循环c[i][ ...

  3. IAR FOR ARM的安装及破解

    本博文主要是介绍如何安装以及破解IAR FOR ARM . 1.下载IAR FOR ARM以及注册机 IAR FOR ARM下载:http://pan.baidu.com/s/1i5t1qF7 注册机 ...

  4. 深入理解c#(第三版)(文摘)

    第一部分 基础知识 第1章 C#开发的进化史 1.3 1.3.1 表示未知的价格 public decimal? Price { get; private set; } new ProductWith ...

  5. MyBatis Generator 详解 【转来纯为备忘】

    版权声明:版权归博主所有,转载请带上本文链接!联系方式:abel533@gmail.com   目录(?)[+] MyBatis Generator中文文档 运行MyBatis Generator X ...

  6. 关于mha手动切换的一些记录(mha方案来自网络)

    mha方案出自:http://www.cnblogs.com/xuanzhi201111/p/4231412.html 当主服务器故障时,人工手动调用MHA来进行故障切换操作,具体命令如下: 先停MH ...

  7. 使用CTex完成北京科技大学本科生毕业设计

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  8. 百度音乐api

    百度音乐全接口 会利用使用接口找歌简单又快捷 http://tingapi.ting.baidu.com/v1/restserver/ting 获取方式:GET 参数:format=json或xml& ...

  9. android studio导入jar的两种方式

    一.第一种是打开工程所在Project Structure,然后选择Dependencies,点击那个加号选择File Dependency ,然后再Libs文件夹中选择要导入的jar包 1. 2. ...

  10. (原创)Louis Aston Knight 的家(摄影,欣赏)

    本文图片转自腾讯文化:www.cal.qq.com 1.Abstract     记忆中的家,深情刻画. 2.Content 图1 图2 图3 图4 图5 图6 图7 图8 图9 图10 图10 图1 ...