如何在SwiftUI中水平翻转形状?

如何在SwiftUI中水平翻转形状?,swiftui,Swiftui,我有一个形状,需要沿x轴翻转。我想用cGraffineTransform解决这个问题,但我只找到了一种旋转形状的方法,而不是沿轴翻转。我需要类似于.rotation3DEffect(.degrees(180),axis:(x:1,y:0,z:0))的东西对于形状您可以在形状上使用rotation3DEffect。下面是一个简单的例子: struct ContentView : View { @State var degrees : Double = 0 var body

我有一个
形状
,需要沿x轴翻转。我想用
cGraffineTransform
解决这个问题,但我只找到了一种旋转形状的方法,而不是沿轴翻转。我需要类似于
.rotation3DEffect(.degrees(180),axis:(x:1,y:0,z:0))的东西
对于形状

您可以在形状上使用
rotation3DEffect
。下面是一个简单的例子:

struct ContentView : View {
    @State var degrees : Double = 0
    
    var body: some View {
        VStack {
            MyShape()
                .fill(Color.red)
                .rotation3DEffect(.degrees(degrees), axis: (x: 1, y: 0, z: 0))
            Button("Rotate") {
                withAnimation {
                    degrees = degrees == 0 ? 180 : 0
                }
            }
        }
    }
}

struct MyShape : Shape {
    func path(in rect: CGRect) -> Path {
        Path { path in
            path.move(to: .zero)
            path.addLine(to: CGPoint(x: rect.maxX, y: rect.minY))
            path.addLine(to: CGPoint(x: rect.minX, y: rect.maxY))
        }
    }
}

<> >为了避免混淆,我会说你的问题标题和你的代码<旋转> 3DEffECT/<代码>和你的标题(翻转形状“水平”)在我的脑海中有点冲突——用<代码>轴旋转180度(x:1,y:0,z:0)< /Cord>执行我认为的垂直翻转。对于水平,您可以将其更改为轴(x:0,y:1,z:0)

您阅读了我的问题吗?我正在寻找
形状
的解决方案,而不是
查看
欢迎使用SO-请阅读并改进、编辑和格式化您的问题。如果没有故障诊断码,就不可能帮助您排除故障。