我正在制作带有4个UIBezierArcs的Simon Says风格的车轮。我不能只制作具有不同颜色和白色部分的单个弧,因为我需要能够识别出按下了哪个弧。
但是,当我将圆弧放置在一个圆中时,内部边缘之间的白色空间小于外部边缘之间的白色空间,并使这些空间看起来像楔形而不是均匀的矩形。
如何调整外弧边缘,使其开始/结束角度长于内弧边缘?
private struct Constants {
static let width: CGFloat = 115;
static let height: CGFloat = 230;
}
override func draw(_ rect: CGRect) {
let center = CGPoint(x: bounds.width / 2, y: bounds.height / 2)
let radius: CGFloat = bounds.height
let startAngle: CGFloat = 0 + .pi / 44
let endAngle: CGFloat = .pi / 2 - .pi / 44
shapePath = UIBezierPath(arcCenter: center,
radius: radius/2 - CGFloat(Constants.width/2),
startAngle: startAngle,
endAngle: endAngle,
clockwise: true)
shapePath.lineWidth = Constants.width …Run Code Online (Sandbox Code Playgroud)