【发布时间】:2020-12-29 12:38:46
【问题描述】:
在模拟器上运行时,Gradient 渲染颜色不正确。在设备上运行时,Gradient 会正确呈现颜色。如何让Gradient 在模拟器上正确渲染颜色,以便捕捉准确的屏幕截图?
模拟器与设备:
View 与 Gradient 的示例:
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)
}
}
}
}
【问题讨论】:
-
奇怪的事情。我在模拟器和设备上得到了相同的外观。
-
看起来你的模拟器颜色是
[.green, .red]而不是[.blue, .red]。 -
是的,Gradient 在混合时似乎在模拟器上用蓝色做一些奇怪的事情。使用 [.blue, .blue] 效果很好,因为没有发生混合。
-
这也发生在我身上,我无法修复它。尝试了以下所有方法,禁用外部显示器。 @DanielStorm .blue/.blue 也适用于我们,但添加 2 diff blues 会将所有内容变为绿色。
-
适用于 Xcode 12 / iOS 14
标签: ios swift swiftui ios-simulator ios14