iOS - 利用 UIBezierPath 绘制圆弧

API

UIBezierPath 绘制圆弧主要利用以下方法:

open func addArc(withCenter center: CGPoint, radius: CGFloat, startAngle: CGFloat, endAngle: CGFloat, clockwise: Bool)

方法中各参数含义:

  • center:圆心
  • radius:半径
  • startAngle:开始弧度
  • endAngle:结束弧度
  • clockwise:绘制方向,YES 为顺时针,NO 为逆时针

要绘制这样一个圆弧

let radius = 40.0
let startPoint = CGPointMake(50, 200)
let endPoint = CGPointMake(150, 200)
let centerPoint = CGPointMake(150 + radius, 200) let path = UIBezierPath()
//逆时针
path.addArc(withCenter: centerPoint, radius: radius, startAngle: .pi, endAngle: 1.5 * .pi, clockwise: false)
//顺时针
path.addArc(withCenter: centerPoint, radius: radius, startAngle: 1.5 * .pi, endAngle: .pi, clockwise: true)

两个点的度数分别是pi和1.5pi

path画好之后添加到CAShapeLayer上

let tempV = CAShapeLayer()
tempV.strokeColor = UIColor.plw_hexColor("#58CE72").cgColor
tempV.lineWidth = lineWidth
tempV.fillColor = UIColor.clear.cgColor
tempV.lineCap = .round
tempV.path = path.cgPath

并设置一些属性,线条的颜色,线条的形状,宽度,内部的填充颜色等等

self.view.layer.addSublayer(tempV)

最后将此layer添加到view的layer上

iOS - 利用 UIBezierPath 绘制圆弧的更多相关文章

  1. 使用UIBezierPath绘制图形

    当需要画图时我们一般创建一个UIView子类, 重写其中的drawRect方法 再drawRect方法中利用UIBezierPath添加画图 UIBezierPath的使用方法: (1)创建一个Bez ...

  2. iOS 之UIBezierPath

    代码地址如下:http://www.demodashi.com/demo/11602.html 在之前的文章中,由于用到过UIBezierPath这个类,所以这里就对这个类进行简单的记录一下,方便自己 ...

  3. 使用canvas元素-art方法绘制圆弧

    最近在学习HTML5,发现canvas真的很棒,canvas元素是一种可供绘图的平面,我们用JavaScript对它进行配置和操作.我这里说一下arc方法绘制圆弧,顺便提一下涉及到的基础知识. 首先看 ...

  4. iOS的阴影绘制及性能优化

    今天来讲讲iOS开发过程中的阴影绘制及其潜在的绘图性能问题.虽然在开发过程中,我们使用阴影功能的机会不是很多,但是如果用了,有可能引起如卡顿等性能问题,所以,还是有必要来探究一下阴影的绘制过程,及如何 ...

  5. 模拟PLC 的圆弧插补方式在VC中绘制圆弧

    最近同事想让要做一个绘图的控件.VC里面的画弧函数Arc需要提供外接矩形的坐标.同事觉得不好用,他更习惯圆弧插补的那种方式.于是看了看圆弧插补的东西.其实这种画弧方式就是提供圆弧的起点.终点和半径来画 ...

  6. iOS可视化动态绘制连通图

    上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...

  7. wpf 后台绘制圆弧

    wpf 前台绘制圆弧很简单,如:<Path x:Name="path_data" Stroke="#FFE23838" StrokeThickness=& ...

  8. iOS - 用 UIBezierPath 实现果冻效果

    最近在网上看到一个很酷的下拉刷新效果(http://iostuts.io/2015/10/17/elastic-bounce-using-uibezierpath-and-pan-gesture/). ...

  9. [原]Wpf应用Path路径绘制圆弧

    1. 移动指令:Move Command(M):M 起始点  或者:m 起始点比如:M 100,240或m 100,240使用大写M时,表示绝对值; 使用小写m时; 表示相对于前一点的值,如果前一点没 ...

  10. iOS界面的绘制和渲染

    界面的绘制和渲染 UIView是如何到显示的屏幕上的. 这件事要从RunLoop开始,RunLoop是一个60fps的回调,也就是说每16.7ms绘制一次屏幕,也就是我们需要在这个时间内完成view的 ...

随机推荐

  1. [使用目前最新版]HybridCLR6.9.0+YooAsset2.2.4实现纯C# Unity热更新方案 (一)

    1.前言 什么是热更新 游戏或者软件更新时,无需重新下载客户端进行安装,而是在应用程序启动的情况下,在内部进行资源或者代码更新 Unity目前常用热更新解决方案 HybridCLR,Xlua,ILRu ...

  2. USB ncm虚拟网卡

    NCM介绍 1 功能 USB NCM,属于USB-IF定义的CDC(Communication Device Class)下的一个子类:Network Control Model,用于Host和Dev ...

  3. 活动预告 | 中国数据库联盟(ACDU)中国行定档深圳,一起揭秘数据库前沿技术

    在当今数字化时代,数据库是各行各业中最核心的信息管理系统之一.随着技术的飞速发展,数据库领域也不断涌现出新的前沿技术和创新应用.数据库运维和开发人员需要紧跟前沿技术,才能保持竞争力,并实现更高效.更智 ...

  4. Putty 远程 连接kali Linux拒绝访问 refused connection

    1. 设置  ssh 文件 crtl + alt + t 代开终端 输入命令: vim /etc/ssh/sshd_config 说明 : 使用 vim 编辑器编辑 ssh 文件 : 说明: 修改第3 ...

  5. Android复习(二)应用资源 --> 颜色状态列表

    转自: https://developer.android.google.cn/guide/topics/resources/color-list-resource 颜色状态列表资源 ColorSta ...

  6. [第一章 web入门]SQL注入-1

    启动靶机 很明显注入点为id值,单引号闭合影响语句,说明为单引号闭合 构造注入语句 ?id=1 ' and 1 =1 --+ 发现没报错,说明没有其他过滤 ,开始sql注入 ?id=1 ' order ...

  7. 《你不知道的JavaScript》读书笔记(一):JS是如何查找变量的

    这本书之前囫囵地看了一遍,确实点明了很多以前不清不楚的点,但是仅仅看一遍是没什么用的,最近面试遇到不少原理相关的题感觉答得不理想,回头看下其实以前都理解过,但是没有记下来,正好结合实际的问题来再学习一 ...

  8. 使用 KubeKey 安装部署 Kubernetes 与 Kube-OVN

    作者简介:林瑞超,锐捷网络开发工程师, KubeSphere 社区 contributor, 关注Kube-OVN, Cilium 等容器网络相关技术 背景 KubeKey 是 KubeSphere ...

  9. insufficient permission for adding an object to repository database .git/objects

    1.出错截图: 有时候使用软件项目管理系统github时候,会出现一些问题截图如下: 2.出错原因 从出错的地方就知道是因为权限不足导致,回想一下,在链接远程服务器时候,不小心切换为管理员权限进行了g ...

  10. python模拟发送、消费kafka消息

    参考文章: https://zhuanlan.zhihu.com/p/279784873 生产者代码: import traceback from kafka import KafkaProducer ...