'Why am I getting "Instance method 'background(_:alignment:)' requires that 'UIColor' conform to 'View'"?

I would like to understand why am I having issue with the background()?

Instance method 'background(_:alignment:)' requires that 'UIColor' conform to 'View'

var body: some View {
    
    Button("MY BUTTON") {
        print("the action")
    }
    .padding()
    .background(Color.black)
    .foregroundColor(.white)
    .clipShape(Capsule())
}

UPDATE

Get same thing with this:

enter image description here

Thanks



Solution 1:[1]

You probably created another struct/class called Color. Xcode syntax highlighting is different for Color.black - this suggests you're not using the SwiftUI Color.

Try this calling it explicitly:

.background(SwiftUI.Color.black)

Solution 2:[2]

Check the syntax once.

This might work:

var body: some View {

    Button(action: {
        print("the action tapped!")
    }) {
        Text("Hello World")
            .padding()
            .background(Color.black)
            .foregroundColor(.white)
            .clipShape(Capsule())
       }
}

Solution 3:[3]

Had the same problem, none of the answers helped me either. What finally worked for me was defining (initialising) the color each time.

Text("Hello World").padding.background(Color.init(UIColor(red: 0, green:0, blue:0, alpha: 1)))

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 pawello2222
Solution 2 SudhakarH
Solution 3 pkamb