如何使用SwiftUI绘制弧线?

时间:2019-07-15 06:39:19

标签: ios swift swiftui

我想用SwiftUI绘制一个弧形。我一直在寻找类似于在Segment()上使用的segment修饰符的东西,但是找不到。我应该能够设置起点和终点角度。

3 个答案:

答案 0 :(得分:0)

您可以使用Path绘制弧线

首先定义路径

let arc = UIBezierPath(arcCenter: CGPoint(x: 0, y: 0),
                              radius: 60,
                              startAngle: .pi ,
                              endAngle: 0.2,
                              clockwise: true)

然后

            Path(arc.cgPath).foregroundColor(Color.blue)

答案 1 :(得分:0)

您应该检查一下:https://developer.apple.com/tutorials/swiftui/drawing-paths-and-shapes

这是一个快捷方式:

enter image description here

import SwiftUI

struct ContentView : View {
    var body: some View {
        MyShape()
    }
}

struct MyShape : Shape {
    func path(in rect: CGRect) -> Path {
        var p = Path()

        p.addArc(center: CGPoint(x: 100, y:100), radius: 50, startAngle: .degrees(0), endAngle: .degrees(90), clockwise: true)

        return p.strokedPath(.init(lineWidth: 3, dash: [5, 3], dashPhase: 10))
    }    
}

答案 2 :(得分:0)

可以通过以下方式完成此问题的另一种解决方案:

Circle()
   .trim(from: 0.25, to: 1.0)
   .rotation(.degrees(-90))
   .stroke(Color.black ,style: StrokeStyle(lineWidth: 3, lineCap: .butt, dash: [5,3], dashPhase: 10))
   .frame(width: 52, height: 52) 

哪个会产生:

enter image description here

根据您要查找的内容,可以选择进行轮换。显然,可以根据您的用例以及是否需要将其扩展为View Modifier(这似乎很简单)。