无法将类型“ Int”的值转换为预期的参数类型“角度”。 Xcode 11,Mac 10.15,SwiftUI

时间:2019-10-16 20:59:39

标签: swift xcode macos swiftui

无法将类型“ Int”的值转换为预期的参数类型“角度”。 Xcode 11,Mac 10.15,SwiftUI

    image
        .clipShape(rotation3DEffect( Angle, axis: (x: 15, y: 15, z: 15)))
        .overlay(Circle().stroke(Color.white, lineWidth: 4))
        .shadow(radius: 10)

作为“角度”应赋予什么值,我尝试了不同的方法,但没有起作用。

2 个答案:

答案 0 :(得分:0)

尝试这样做:

image
        .clipShape(rotation3DEffect( .degrees(Angle), axis: (x: 15, y: 15, z: 15)))
        .overlay(Circle().stroke(Color.white, lineWidth: 4))
        .shadow(radius: 10)

来源:https://www.hackingwithswift.com/quick-start/swiftui/how-to-rotate-a-view-in-3d

PS 假设Angle是您所讨论的不能转换为角度的int,最好用小写声明常量和变量,即应该是angle,而不是Angle。在更多情况下,这通常不是什么大问题,但是在这种情况下,很难知道Angle是有问题的常量或变量,因为它是大写的。

答案 1 :(得分:0)

您必须将Shape传递到.clipShape(),例如:

.clipShape(Circle())

您必须将.rotation3DEffect作为单独的修饰符应用,它以Angle和3个CGFloats的元组作为参数,如下所示:

.rotation3DEffect(Angle(degrees: 10), axis: (15.0, 15.0, 15.0))

因此您的图像应这样声明:

image
    .clipShape(Circle())
    .overlay(Circle().stroke(Color.white, lineWidth: 4))
    .rotation3DEffect(Angle(degrees: 10), axis: (15.0, 15.0, 15.0))
    .shadow(radius: 10)