AYohannes
AYohannes

Reputation: 625

SwiftUI:- Image won't show on the View

I am playing around with SwiftUI and I am stuck on this View. everything is working fine but this little bug is very frustrating.I am trying to display the images as a vertical view and it won't show on the view . I know the Images are loaded but the view is not showing it . Its covered in blue color.

import SwiftUI 

struct PlanetHome : View {
var planets : [Planet]
var body : some View {
    NavigationView {
        ScrollView {
            ZStack {
                Color.black .edgesIgnoringSafeArea (.all)
                VStack (alignment: .center)
                {
                    ForEach (self.planets.identified(by: \.imageName))
                    {
                        planet in NavigationLink (destination: PlanetDetail(planets: planet))
                        {
                            PlanetsView (planets: planet)
                            .frame (width: 500, height: 500)
                            .padding (.vertical, 5)
                        }
                    }
                }
            }
        }
        .navigationBarTitle (Text("Planets"))
    }
}

}

I tried to put the NavigationView under the ZStack but it did not work.I have no Idea what I did wrong on the code. No error message on the debugger. just doesn't show the images.

Upvotes: 6

Views: 2668

Answers (2)

taxiboatdriver
taxiboatdriver

Reputation: 1633

The NavigationLink applies a button style to the objects it holds. Button does the same. To remove the blue color, add the buttonStyle modifier:

NavigationLink(destination: ...) {
    ...
}
.buttonStyle(PlainButtonStyle())

You can create and apply your own button style as well.

Upvotes: 9

Radagast
Radagast

Reputation: 318

Its covered in blue color.

You can change blue color to whatever you want with .foregroundColor(.YourColor) or just change Render as Default to Render as Original Image at Assets.xcassets -> Pick Any Image -> Show the Attribute inspector

To fix other problem you should include PlanetsView because when i put Image(systemName: "photo") instead your view it's shows correctly

Upvotes: -1

Related Questions