小编Lil*_*rry的帖子

如何扩展UIBezierPath弧的外边缘

我正在制作带有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)

xcode ios swift swift4

3
推荐指数
1
解决办法
138
查看次数

标签 统计

ios ×1

swift ×1

swift4 ×1

xcode ×1