【发布时间】:2021-02-11 09:13:06
【问题描述】:
这对我来说是非常奇怪的错误或问题!我有一个红色的 Rectangle(),它通过用户单击旋转,之后我的 Rectangle() 有一个阴影视图。旋转后,Rectangle() 有超过 1 个阴影视图,它们相互渲染并且不起作用!这对我来说不合逻辑,为什么会这样? .shadow 必须只返回 1 个视图,但在这种情况下,如果您从 0 以上开始,则返回超过 1 个角度(度数:0)的视图,一切正常,例如使用:角度(度数:10)。一旦你用 Angle(degrees: 0) 启动应用程序,它就不会工作!
struct ContentView: View {
@State var rotationAngle: Angle = Angle(degrees: 0) //← Here
var body: some View {
Rectangle()
.fill(Color.red)
.frame(width: 200, height: 100, alignment: .center)
.rotationEffect(rotationAngle)
.onTapGesture
{
rotationAngle += Angle(degrees: 10)
}
.shadow(color: Color.black, radius: 10, x: 0, y: 20)
}
}
这是我临时使用的救赎:
.rotationEffect(rotationAngle == Angle(degrees: 0) ? Angle(degrees: 0.001) : rotationAngle)
你的是什么?
【问题讨论】:
-
这是一个奇怪的错误。解决方法:以
Angle(degrees: 360)开头。 -
是的!这很奇怪!如果我给 Angle(degrees: 0.00000000001) 它会正常工作,但它不适用于 0 或 0.0
-
如果您从
Angle(degrees: -20)开始,它可以正常工作,直到到达10。 -
是的,如果我使用 -20.0000000001 就可以了!但不是 -20
-
我认为这是一个与苹果影子函数相关的 swiftUI 错误,忘记清除旧的 contextView,它与您的旋转角度步长或从哪个角度开始无关!清除零度的上下文确实有问题!即使有弧度!如果您从 zeo 开始,它将无法正常工作
标签: swiftui