【问题标题】:How we can draw live shadow on rotationEffect for Angle(degrees: 0) in SwiftUI?我们如何在 SwiftUI 中为 Angle(degrees: 0) 在 rotationEffect 上绘制实时阴影?
【发布时间】: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


【解决方案1】:

Xcode 12.1 / iOS 14.1 已解决该问题,这是旧版本的错误。

【讨论】:

    猜你喜欢
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 1970-01-01
    • 2010-10-22
    相关资源
    最近更新 更多