繁体   English   中英

如何使用 SwiftUI 绘制弧线?

[英]How to draw an arc with SwiftUI?

我想用 SwiftUI 画一个弧形。 我正在寻找类似用于 Circle() 的段修饰符之类的东西,但我找不到。 我应该能够设置开始和结束角度。

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

这是一个快捷方式:

在此处输入图片说明

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))
    }    
}

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

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) 

这将产生:

在此处输入图片说明

根据您要执行的操作,您可以选择进行轮换。 这显然可以扩展为视图修改器,具体取决于您的用例以及是否需要(这看起来很简单)。

您可以使用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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM