SwiftUI渐变在模拟器上渲染不正确的颜色

问题描述

在模拟器上运行时,Gradient无法正确呈现颜色。在设备上运行时,Gradient可以正确渲染颜色。如何获得Gradient以便在模拟器上正确渲染颜色,以便捕获准确的屏幕截图?

模拟器与设备:

simulator

device

示例ViewGradient

struct GradientView: View {
    
    private static let backgroundGradientColors: [Color] = [.red,.blue]
    
    var body: some View {
        ZStack {
            GeometryReader { geometryReader in
                let gradient: Gradient = Gradient(colors: GradientView.backgroundGradientColors)
                RadialGradient(gradient: gradient,center: .bottomTrailing,starTradius: 0,endRadius: geometryReader.size.width)
                    .edgesIgnoringSafeArea(.all)
            }
        }
    }

}

解决方法

如果使用内置系统颜色,这似乎会发生。一旦我改用具有浅色和深色变体的资产目录颜色,它们就会正确显示。

P.S。每次更改颜色以使其能够在小部件预览中正确显示时,我必须从sim卡中删除该应用程序。

,

我也碰到了这个。显然,这似乎是Xcode / Simulator中的错误,因为设备上的所有内容看起来都是正确的。

这是在将MacBook Pro 15“连接到外部显示器时在我的MacBook Pro上发生的,但是有趣的是,当我在正常的内置显示器上运行它时,一切在SwiftUI预览中和在Simulator上都显得完全正常。

因此,如果遇到此问题并且您正在使用带有外部显示器的笔记本电脑,请尝试拔下电源插头,看看是否有帮助。