Images with names stored in an array are not displayed.

Hello. wants to display images in a TabView. The names of the images are stored in an array, because there is more than one image. But in the final preview only a gray field is visible. What do I have to do so that the images are displayed?

The ImageSlider

import SwiftUI



struct ImageSlider: View {



  

    //var numberOfImages = 4

    let  countryItem : CountryItem



    var body: some View {

        GeometryReader { proxy in

            

            TabView{

                ForEach(0..<4) { num in

                    Image("\(countryItem.image)")

                        .resizable()

                        .scaledToFill()

                        .overlay(Color.black.opacity(0.1))

                        .tag(num)

                    

                }

            }.tabViewStyle(PageTabViewStyle())

                .clipShape(RoundedRectangle(cornerRadius: 5))

                .padding()

                .frame(width: proxy.size.width, height: proxy.size.width / 1.5 )

        }}

}

The Array with the datas. The images named 0,1,2,3 and 4,5,6,7

import Foundation

// Bitte Ab sofott hier neue Länder einfügen!



class CountryItemHolder: ObservableObject{

    

    public let countryList: [CountryItem] = [

        

        CountryItem(

            country_flag: "🇪🇬",

            name: "Ägypten",

            description: "Ägypten ist ein Land, das Nordostafrika mit dem Nahen Osten verbindet und bis in die Zeit der Pharaonen zurückreicht. Zu den jahrtausendealten Baudenkmälern im fruchtbaren Niltal zählen die kolossalen Pyramiden und die Große Sphinx von Gizeh sowie die hieroglyphenbedeckten Wände des Karnak-Tempels und die Gräber im Tal der Könige bei Luxor.",

            hauptstadt: "Kairo",

            währung: "Ägyptisches Pfund",

            währungskürzel: "egp",

            einwohnerzahl: "102,3 Millionen",

            nicetoknow:"In den meisten touristischen Orten werden Kreditkarten als Zahlungsmittel akzeptiert. Zudem gibt es mehrere Bankautomaten. Das Telefonnetz ist gut ausgebaut. Das Äygptische Stromnetz läuft mit 220V und es wird üblicherweiße der Eurostecker verwendet.",

            image: [0,1,2,3]),

        CountryItem(

            country_flag: "🇦🇹",

          name: "Österreich",

          description: "Österreich ist ein mitteleuropäischer Binnenstaat. Mehr als 62 Prozent seiner Staatsfläche werden von alpinem Hochgebirge gebildet. Der österreichische Staat wird deshalb auch als Alpenrepublik bezeichnet.",

            hauptstadt: "Wien",

            währung: "Euro",

            währungskürzel: "eur",

            einwohnerzahl: "8,917 Millionen",

            nicetoknow:"Österreich ist ein EU-Mitgliedsstaat. Österreich verlangt Mautgebühren für ihre Autobahnen.",

            image:[4,5,6,7]),

]
}

Answered by ja_hartmann in 726399022

Yes, it is then simply all white

Is the first image name (as stored in the App Bundle) "0" or "0.png" (or "0.jpg")?

It must be "0"

Does the file definitely have no file extension?
(Note that Xcode could be hiding the file extension.). Check the source file on disk.

Yes, because when I call the image separately via "image("0"), it is displayed.

Did you try removing:

.overlay(Color.black.opacity(0.1))
Accepted Answer

Yes, it is then simply all white

Try changing:

Image("\(countryItem.image)")

to

Image("\(countryItem.image[num])")

That worked. I can't thank you enough!

Images with names stored in an array are not displayed.
 
 
Q