使用Path,并配合move和addLine绘制自定义的图形
示例代码:
Path { path in //首先添加一个路径,在闭包语句里进行路径形状的定义 path.move(to: CGPoint(x: 30, y: 0)) //将路径的起点移到此处的坐标位置,也就是水平坐标为30,垂直坐标为0的位置 path.addLine(to: CGPoint(x: 30, y: 200)) //然后通过addLine方法,从路径的起点,绘制一条直线,直线的终点坐标为{30, 200} path.addLine(to: CGPoint(x: 230, y: 200)) //接着从点{30, 200}开始,向右侧绘制一条直线,直线的终点坐标为{230, 200}。 path.addLine(to: CGPoint(x: 230, y: 0)) //继续向上方绘制一条直线,直线的终点坐标为{230, 0}。 path.move(to: CGPoint(x: 30, y: 300)) path.addQuadCurve(to: CGPoint(x: 230, y: 300), control: CGPoint(x: 130, y: 450)) //通过addQuadCurve添加四边形曲线命令,绘制一条贝塞尔曲线,曲线的终点位于(230,300),曲线的控制点位于(130,450) path.addQuadCurve(to: CGPoint(x: 330, y: 300), control: CGPoint(x: 280, y: 220)) } Path { path in path.addEllipse(in: CGRect(x: 100, y: 30, width: 200, height: 200)) //将椭圆移到当前路径位置 path.addRoundedRect(in: CGRect(x: 100, y: 120, width: 200, height: 200), cornerSize: CGSize(width: 10, height: 10)) //加圆角矩形到当前路径 path.addEllipse(in: CGRect(x: 100, y: 210, width: 200, height: 200)) }