关于swift中的strokeStart和strokeEnd
这两个属性的取值范围都在0~1
strokeStart:起始位置
strokeEnd:结束位置
具体使用就举个例子:
// 创建图层
let shapeLayer = CAShapeLayer()
shapeLayer.position = CGPoint.zero
// 创建图形路径
let path = CGMutablePath()
// 设置路径起点
path.move(to: CGPoint(x: 100, y: 300))
// 进行画线
path.addLine(to: CGPoint(x: 300, y: 300))
path.addLine(to: CGPoint(x: 200, y: 400))
path.addLine(to: CGPoint(x: 100, y: 300))
// 设置图层路径
shapeLayer.path = path
// 设置图形边缘线条起点
shapeLayer.strokeStart = 0
// 设置图形边缘线条终点
shapeLayer.strokeEnd = 1
此时起始位置设置为0,结束位置设置为1,也就是将这个三角形图形按照我们设置好的路径顺序,从头为尾全部画出来,如图:
但是如果我们稍作修改:
// 创建图层
let shapeLayer = CAShapeLayer()
shapeLayer.position = CGPoint.zero
// 创建图形路径
let path = CGMutablePath()
// 设置路径起点
path.move(to: CGPoint(x: 100, y: 300))
// 进行画线
path.addLine(to: CGPoint(x: 300, y: 300))
path.addLine(to: CGPoint(x: 200, y: 400))
path.addLine(to: CGPoint(x: 100, y: 300))
// 设置图层路径
shapeLayer.path = path
// 设置图形边缘线条起点
shapeLayer.strokeStart = 0
// 设置图形边缘线条终点
shapeLayer.strokeEnd = 0.5
这里我们将起始位置保持0不动,将结束位置修改为0.5,也就是一半,那么我应该看到的是一个画了一半的三角形:
同理,如果对起始位置修改,我们也可以得到不同起点开始画的三角形,可以自己动手试一下。