SwiftUI:UIkit UIbezier到SwiftUI路径
我正在尝试将UIBezierPath转换为SwiftUI Path 我通过编辑下面的代码,手动完成了以下操作: 发件人: UIBezierPath 控制点1:CGPoint(x:1226.38,y:0),控制点2:CGPoint(x:1199.37,y:0)) 致: SwiftUI 控件1:CGPoint(x:1226.38,y:0),控件2:CGPoint(x:1199.37,y:0)) 完整路径代码的示例:SwiftUI:UIkit UIbezier到SwiftUI路径,swiftui,uibezierpath,cgpoint,Swiftui,Uibezierpath,Cgpoint,我正在尝试将UIBezierPath转换为SwiftUI Path 我通过编辑下面的代码,手动完成了以下操作: 发件人: UIBezierPath 控制点1:CGPoint(x:1226.38,y:0),控制点2:CGPoint(x:1199.37,y:0)) 致: SwiftUI 控件1:CGPoint(x:1226.38,y:0),控件2:CGPoint(x:1199.37,y:0)) 完整路径代码的示例: let stroke253 = UIBezierPath()
let stroke253 = UIBezierPath()
stroke253.move(to: CGPoint(x: 1253.45, y: 0))
stroke253.addCurve(to: CGPoint(x: 1172.3, y: 0), controlPoint1: CGPoint(x: 1226.38, y: 0), controlPoint2: CGPoint(x: 1199.37, y: 0))
stroke253.addCurve(to: CGPoint(x: 990.46, y: 0), controlPoint1: CGPoint(x: 1111.66, y: 0), controlPoint2: CGPoint(x: 1051.12, y: 0))
stroke253.addCurve(to: CGPoint(x: 808.64, y: 0), controlPoint1: CGPoint(x: 929.82, y: 0), controlPoint2: CGPoint(x: 869.27, y: 0))
stroke253.addCurve(to: CGPoint(x: 626.74, y: 0), controlPoint1: CGPoint(x: 747.98, y: 0), controlPoint2: CGPoint(x: 687.4, y: 0))
stroke253.addCurve(to: CGPoint(x: 444.84, y: 0), controlPoint1: CGPoint(x: 566.08, y: 0), controlPoint2: CGPoint(x: 505.5, y: 0))
stroke253.addCurve(to: CGPoint(x: 263, y: 0), controlPoint1: CGPoint(x: 384.18, y: 0), controlPoint2: CGPoint(x: 323.63, y: 0))
stroke253.addCurve(to: CGPoint(x: 81.18, y: 0), controlPoint1: CGPoint(x: 202.37, y: 0), controlPoint2: CGPoint(x: 141.82, y: 0))
stroke253.addCurve(to: CGPoint.zero, controlPoint1: CGPoint(x: 54.11, y: 0), controlPoint2: CGPoint(x: 27.07, y: 0))
context.saveGState()
context.translateBy(x: 128.21, y: 144.05)
stroke253.lineWidth = 2
UIColor(hue: 1, saturation: 0.636, brightness: 0.549, alpha: 1).setStroke()
stroke253.stroke()
context.restoreGState()
context.restoreGState()
}
问题:如果不进行手动编辑,我如何做到这一点
谢谢你的帮助
干杯我不太明白你的问题,或者错过了一些信息。但如果您需要将
UIBezierPath
转换为Path
:
Path(UIBezierPath().cgPath)
或Path(stroke253.cgPath)
作为变量
import SwiftUI
struct PatternScene: View {
let stroke253 = Path { stroke253 in
stroke253.move(to: CGPoint(x: 1253.45, y: 0))
stroke253.addCurve(to: CGPoint(x: 1172.3, y: 0), control1: CGPoint(x: 1226.38, y: 0), control2: CGPoint(x: 1199.37, y: 0))
stroke253.addCurve(to: CGPoint(x: 990.46, y: 0), control1: CGPoint(x: 1111.66, y: 0), control2: CGPoint(x: 1051.12, y: 0))
stroke253.addCurve(to: CGPoint(x: 808.64, y: 0), control1: CGPoint(x: 929.82, y: 0), control2: CGPoint(x: 869.27, y: 0))
stroke253.addCurve(to: CGPoint(x: 626.74, y: 0), control1: CGPoint(x: 747.98, y: 0), control2: CGPoint(x: 687.4, y: 0))
stroke253.addCurve(to: CGPoint(x: 444.84, y: 0), control1: CGPoint(x: 566.08, y: 0), control2: CGPoint(x: 505.5, y: 0))
stroke253.addCurve(to: CGPoint(x: 263, y: 0), control1: CGPoint(x: 384.18, y: 0), control2: CGPoint(x: 323.63, y: 0))
stroke253.addCurve(to: CGPoint(x: 81.18, y: 0), control1: CGPoint(x: 202.37, y: 0), control2: CGPoint(x: 141.82, y: 0))
stroke253.addCurve(to: CGPoint.zero, control1: CGPoint(x: 54.11, y: 0), control2: CGPoint(x: 27.07, y: 0))
}
var body: some View {
self.stroke253
.stroke(Color.blue, lineWidth: 10)
}
}
struct PatternScene_Previews: PreviewProvider {
static var previews: some View {
PatternScene()
}
}