iOS - 利用 UIBezierPath 绘制圆弧
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 绘制圆弧的更多相关文章
- 使用UIBezierPath绘制图形
当需要画图时我们一般创建一个UIView子类, 重写其中的drawRect方法 再drawRect方法中利用UIBezierPath添加画图 UIBezierPath的使用方法: (1)创建一个Bez ...
- iOS 之UIBezierPath
代码地址如下:http://www.demodashi.com/demo/11602.html 在之前的文章中,由于用到过UIBezierPath这个类,所以这里就对这个类进行简单的记录一下,方便自己 ...
- 使用canvas元素-art方法绘制圆弧
最近在学习HTML5,发现canvas真的很棒,canvas元素是一种可供绘图的平面,我们用JavaScript对它进行配置和操作.我这里说一下arc方法绘制圆弧,顺便提一下涉及到的基础知识. 首先看 ...
- iOS的阴影绘制及性能优化
今天来讲讲iOS开发过程中的阴影绘制及其潜在的绘图性能问题.虽然在开发过程中,我们使用阴影功能的机会不是很多,但是如果用了,有可能引起如卡顿等性能问题,所以,还是有必要来探究一下阴影的绘制过程,及如何 ...
- 模拟PLC 的圆弧插补方式在VC中绘制圆弧
最近同事想让要做一个绘图的控件.VC里面的画弧函数Arc需要提供外接矩形的坐标.同事觉得不好用,他更习惯圆弧插补的那种方式.于是看了看圆弧插补的东西.其实这种画弧方式就是提供圆弧的起点.终点和半径来画 ...
- iOS可视化动态绘制连通图
上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...
- wpf 后台绘制圆弧
wpf 前台绘制圆弧很简单,如:<Path x:Name="path_data" Stroke="#FFE23838" StrokeThickness=& ...
- iOS - 用 UIBezierPath 实现果冻效果
最近在网上看到一个很酷的下拉刷新效果(http://iostuts.io/2015/10/17/elastic-bounce-using-uibezierpath-and-pan-gesture/). ...
- [原]Wpf应用Path路径绘制圆弧
1. 移动指令:Move Command(M):M 起始点 或者:m 起始点比如:M 100,240或m 100,240使用大写M时,表示绝对值; 使用小写m时; 表示相对于前一点的值,如果前一点没 ...
- iOS界面的绘制和渲染
界面的绘制和渲染 UIView是如何到显示的屏幕上的. 这件事要从RunLoop开始,RunLoop是一个60fps的回调,也就是说每16.7ms绘制一次屏幕,也就是我们需要在这个时间内完成view的 ...
随机推荐
- 运输小猫娘之再续 5k 传奇
写的比较意识流 前情提要 上回书说到,5k 因为拯救大家被炸断了 \(1000000007\) 米的牛至中的十五千米,尽管大家的欢呼声如此热烈,就像大家的热量正在像烈火一样散发出来,但是 5k 却无心 ...
- 2款.NET开源且免费的Git可视化管理工具
Git是什么? Git是一种分布式版本控制系统,它可以记录文件的修改历史和版本变化,并可以支持多人协同开发.Git最初是由Linux开发者Linus Torvalds创建的,它具有高效.灵活.稳定等优 ...
- 简单上手 Vue Router
Vue Router 也随着 Vue3 的更新来到了 4 版本,来看一下怎么使用吧!(这里使用的是 composition API 和 TypeScript 模式) 安装 vue-router4 np ...
- mysql-存储过程(二)-逻辑判断语句
一,if语句: IF(expr1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为e ...
- TLB一致性维护
TLB 是页表项的物理 cache,用于加速虚拟地址到物理地址的转换.CPU 在访问一个虚拟地址时,首先会在 TLB 中查找,如果找不到对应的表项,那么就称之为 TLB miss,此时就需要去内存里查 ...
- iOS键盘通知弹框使用小结
项目开发中文本框输入的时候经常会用到键盘弹框遮挡的问题.解决办法就是根据底部键盘弹出的高度动态的改变对应view的位置.这里以多行文本框输入为例,效果图如下. //第一步,注册监听键盘通知 [[NSN ...
- 如何在kubernetes环境中共享GPU
随着人工智能和大模型的快速发展,云上GPU资源共享变得必要,因为它可以降低硬件成本,提升资源利用效率,并满足模型训练和推理对大规模并行计算的需求. 在kubernetes内置的资源调度功能中,GPU调 ...
- day05-JDK的卸载与安装
JDK卸载 右键我的电脑--属性--高级系统设置--环境变量,找到JAVA_HOME安装目录,删除Java安装目录 删除JAVA_HOME 删除path下关于java的目录 cmd查看Java -ve ...
- 快速部署mysql并开启binlog
curl -fsSL https://get.docker.com | bash yum -y install docker-ce sudo systemctl start docker sudo s ...
- HTB打靶记录-Infiltrator
nmap scan nmap -A 10.10.11.31 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-15 13:18 CST Nma ...