Button Stroke Set Gap 在特定位置 Swiftui
Button Stroke Set Gap In specific position Swiftui
我在 SwiftUI 中使用以下代码为所有边添加了边框。我想 trim 像下面那样抚摸一个特定的位置。
想达到:-
输出:-
代码:-
import SwiftUI
struct RoundTrimImage: View {
var body: some View {
VStack{
Button(action: {
print("Round Action")
}) {
Text("Press")
.frame(width: 100, height: 100)
.foregroundColor(Color.black)
.background(Color.red)
.clipShape(Circle()).padding(5)
.overlay(
RoundedRectangle(cornerRadius: 100)
.trim(from: 0, to: CGFloat(0.8))
.stroke(Color.blue, lineWidth: 2)
)
}
}
}
}
问题:有人可以向我解释一下如何 trim 触发特定位置,我已经尝试使用上面的代码但还没有结果。
有人可以向我解释一下如何获得进度吗?
如有任何帮助,我们将不胜感激。
提前致谢。
可能的方法是使用 Arc
准备所需的形状,然后将其旋转到任何需要的位置。
使用 Xcode 13.2 / iOS 15.2
准备的演示
struct DemoView: View {
var body: some View {
VStack{
Button(action: {
print("Round Action")
}) {
Text("Press")
.frame(width: 100, height: 100)
.foregroundColor(Color.black)
.background(Color.red)
.clipShape(Circle()).padding(5)
.overlay(
RotatedShape(shape: CutShape(), angle: .degrees(-120))
.stroke(Color.blue, lineWidth: 2)
)
}
}
}
}
private struct CutShape: Shape {
func path(in rect: CGRect) -> Path {
Path {
[=10=].addArc(center: CGPoint(x: rect.midX, y: rect.midY), radius: rect.midY, startAngle: Angle(degrees: -5), endAngle: Angle(degrees: 5), clockwise: true)
}
}
}
我在 SwiftUI 中使用以下代码为所有边添加了边框。我想 trim 像下面那样抚摸一个特定的位置。
想达到:-
输出:-
代码:-
import SwiftUI
struct RoundTrimImage: View {
var body: some View {
VStack{
Button(action: {
print("Round Action")
}) {
Text("Press")
.frame(width: 100, height: 100)
.foregroundColor(Color.black)
.background(Color.red)
.clipShape(Circle()).padding(5)
.overlay(
RoundedRectangle(cornerRadius: 100)
.trim(from: 0, to: CGFloat(0.8))
.stroke(Color.blue, lineWidth: 2)
)
}
}
}
}
问题:有人可以向我解释一下如何 trim 触发特定位置,我已经尝试使用上面的代码但还没有结果。
有人可以向我解释一下如何获得进度吗?
如有任何帮助,我们将不胜感激。
提前致谢。
可能的方法是使用 Arc
准备所需的形状,然后将其旋转到任何需要的位置。
使用 Xcode 13.2 / iOS 15.2
准备的演示struct DemoView: View {
var body: some View {
VStack{
Button(action: {
print("Round Action")
}) {
Text("Press")
.frame(width: 100, height: 100)
.foregroundColor(Color.black)
.background(Color.red)
.clipShape(Circle()).padding(5)
.overlay(
RotatedShape(shape: CutShape(), angle: .degrees(-120))
.stroke(Color.blue, lineWidth: 2)
)
}
}
}
}
private struct CutShape: Shape {
func path(in rect: CGRect) -> Path {
Path {
[=10=].addArc(center: CGPoint(x: rect.midX, y: rect.midY), radius: rect.midY, startAngle: Angle(degrees: -5), endAngle: Angle(degrees: 5), clockwise: true)
}
}
}