【发布时间】:2020-10-08 23:35:08
【问题描述】:
我正在尝试画一个在 12 点逆时针方向开始和结束的圆圈。我遇到的问题是没有绘制形状。
我使用init(arcCenter center: CGPoint, radius: CGFloat, startAngle: CGFloat, endAngle: CGFloat, clockwise: Bool) 初始化器作为路径,如果我使用clockwise: true,它可以工作。如果startAngle 设置为0,endAngle 设置为2 * .pi,则它适用于clockwise: false。但是 clockwise: false 和 startAngle: -0.5 * .pi, endAngle: 1.5 * .pi 的组合不起作用。这是有原因的吗?我该如何解决?
这个有效:
let shapeLayer = CAShapeLayer()
let arcCenter = view.center
let circularPath = UIBezierPath(arcCenter: arcCenter, radius: 100, startAngle: 0, endAngle: 2 * CGFloat.pi, clockwise: false)
shapeLayer.path = circularPath.cgPath
shapeLayer.strokeColor = UIColor.red.cgColor
shapeLayer.lineWidth = 10
shapeLayer.lineCap = .round
shapeLayer.fillColor = .none
view.layer.addSublayer(shapeLayer)
还有这个。结果看起来一样。
UIBezierPath(arcCenter: arcCenter, radius: 100, startAngle: -0.5 * .pi, endAngle: 1.5 * .pi, clockwise: true)
但不是这个:
UIBezierPath(arcCenter: arcCenter, radius: 100, startAngle: -0.5 * .pi, endAngle: 1.5 * .pi, clockwise: false)
【问题讨论】:
标签: swift uibezierpath cashapelayer