iosswiftswiftui

How to fill shape with Gradient in SwiftUI


how can i pass LinearGradient to a shape (for example Rectangle) just in SwiftUI?

Rectangle().frame(width: UIScreen.main.bounds.width, height: 200)

Solution

  • This should work:

    static let gradientStart = Color(red: 239.0 / 255, green: 120.0 / 255, blue: 221.0 / 255)
    static let gradientEnd = Color(red: 239.0 / 255, green: 172.0 / 255, blue: 120.0 / 255)
    
    var body: some View {
      Rectangle()
        .fill(LinearGradient(
          gradient: .init(colors: [Self.gradientStart, Self.gradientEnd]),
          startPoint: .init(x: 0.5, y: 0),
          endPoint: .init(x: 0.5, y: 0.6)
        ))
        .frame(width: 300, height: 200)
    }