The following code produces a Rectangle() that is white and un-filled. I have zero idea why, and I'm not getting any errors.
Note: When I replace the custom colors (i.e. Color(red: green: blue:) with builtin colors such as Color.red or Color.blue, then fill shows up and is colored.
var body: some View {
Rectangle()
.fill(
LinearGradient(
colors: [Color(red: 180, green: 40, blue: 55),
Color(red: 200, green: 40, blue: 55)],
startPoint: .top,
endPoint: .bottom)
)
}
What's making the fill not show up, and how can I fix this while keeping my custom colors?
CodePudding user response:
The Color initializer you're using defines the color using the sRGB color space and clamps any supplied component values to between 0 and 1. So supplying any value greater than 1 for all three values will create a white color - the equivalent of Color(red: 1.0, green: 1.0, blue: 1.0).
To get the colors you need, you should divide each value by 255, e.g.:
colors: [Color(red: 0.706, green: 0.157, blue: 0.216),
Color(red: 0.784, green: 0.157, blue: 0.216)],
See the Apple documentation.
