Wie bette ich ein Video in einer ScrollView ein (SwiftUI)?
struct Doppelspalt: View {
    
    var body: some View{
        ScrollView{
            Text("Doppelspalt-Experiment")
                .font(.title2)
                .navigationTitle("Doppelspaltversuch")
            
            Spacer()
            Text("Der Doppelspalt-Versuch ist ein wichtiges Experiment in der Quantenphysik, das die ungewöhnlichen Eigenschaften von Quantenobjekten demonstriert. Im Experiment wird ein Lichtstrahl durch zwei enge Spalte geleitet, die so eng sind, dass nur ein einzelnes Photon auf einmal hindurchpassen kann...")
                .padding(.horizontal, 24)
            
            VideoView(videoID: "lKZaHgNmQ_o")
                .frame(minHeight: 0, maxHeight: UIScreen.main.bounds.height * 0.3)
                .cornerRadius(12)
                .padding(.horizontal, 24)
            Spacer()
            Text("Kopenhagener Deutung")
                .font(.title2)
            Spacer()
            
            Text("Die Kopenhagener Deutung betont die Unbestimmtheit und Unvorhersagbarkeit von Messungen in der Quantenmechanik...")
                .padding(.horizontal, 24)
            VideoView(videoID: "TiXfAs0Wf_E")
                .frame(minHeight: 0, maxHeight: UIScreen.main.bounds.height * 0.3)
                .cornerRadius(12)
                .padding(.horizontal, 24)
            
            Spacer()
        }
    }
}

Wenn ich die ScrollView entferne werden die Videos angezeigt aber mit der SchrollView verschwinden sie einfach.

Video, Swift, einbetten, SwiftUI
SwiftUI ObservableObject muss raus?

Ich bekomme andauernd den Fehler "Cannot preview in this file" und glaube den Fehler im ObservableObject gefunden zu haben. Das Problem ist halt, dass ich einige Lösungen im Internet benutzt habe, die mich anfangs weitergebracht haben aber jetzt mich dran hindern weiterzukommen. Auf jeden Fall glaube ich, dass das ObservableObject weg muss aber ich scheitere dran wie ich es rausnehme.

Ich vermute es, da mir einer andere Meldung folgendes sagt:

Thread 1: Fatal error: No ObservableObject of type ModelData found. A View.environmentObject(_:) for ModelData may be missing as an ancestor of this view.

Da ich nach meinem Verständnis aber eigentlich kein ObservableObject brauche denke ich muss es raus.

Für Alternativen und einer Belehrung bin ich trotzdem offen ^^

import SwiftUI

struct CategoryHome: View {
   @EnvironmentObject var modelData: ModelData

    var body: some View {
        NavigationView {
            List{
                
                Image("Denkmal")
                              .resizable()
                              .scaledToFill()
                              .frame(height: 200)
                              .clipped()
                              .listRowInsets(EdgeInsets())
                
                
               ForEach(modelData.categories.keys.sorted(), id: \.self) { key in
                    CategoryRow(categoryName: key, items: modelData.categories[key]!)
                }
                .listRowInsets(EdgeInsets())
                
            }
            .navigationTitle("Featured")
             


        }
    }
}

struct CategoryHome_Previews: PreviewProvider {
    static var previews: some View {
        CategoryHome()

    }
}
import Foundation
import Combine

final class ModelData: ObservableObject {
    @Published var GeschichteJN: [GeschichteDekl] = load("GeschichteData.json")
  

  

    var categories: [String: [GeschichteDekl]] {
        Dictionary(
            grouping: GeschichteJN,
            by: { $0.category.rawValue }
        )
    }
}

func load<T: Decodable>(_ filename: String) -> T {
    let data: Data

    guard let file = Bundle.main.url(forResource: filename, withExtension: nil)
        else {
            fatalError("Couldn't find \(filename) in main bundle.")
    }

    do {
        data = try Data(contentsOf: file)
    } catch {
        fatalError("Couldn't load \(filename) from main bundle:\n\(error)")
    }

    do {
        let decoder = JSONDecoder()
        return try decoder.decode(T.self, from: data)
    } catch {
        fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)")
    }
}


Computer, programmieren, Swift, SwiftUI
SwiftUI Fehler lässt sich nicht finden, was ist falsch an meinem Code?

Also ich habe folgendes Problem:

Ich habe eine Liste mit den var's: ename, order, symbol und elne

Wenn ich folgenden Code eingebe funktioniert alles wunderbar:

*Siehe Bild, Code wegen Zeichenlänge nicht verfügbar.

Betroffene Zeilen: Zeile 30-39

Fehlermeldung:

The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions

Ich bin mir außerdem nicht sicher was diese Fehlermeldung bedeutet...

Und sobald ich ein paar Sachen in der List hinzufüge bekomme ich folgende Fehlermeldung:

Hier ist mein Code:

struct ChemieView: View{
    
    @State var showComposeMessageView: Bool = false
    @State private var searchText = ""
    
    private let elements = Elementis.Chemics
    
    
    var body: some View{
        NavigationView{
            
            List{
                
                ForEach(filteredElements) { elementis in
                    NavigationLink(elementis.ename, destination:
                                    List{
                        Text(elementis.ename)
                        HStack {
                            Text("Symbol:")
                            Text(elementis.symbol)
                        }
                        HStack {
                            Text("Ordnungszahl:")
                            Text(elementis.order)
                        }
                      HStack {
                         Text("Elektronegativitätswert:")
                        Text(elementis.elne)
                     }
                        HStack {
                            Text("Elektronegativitätswert:")
                            Text(elementis.amasse)
                            
                        }
                        
                        
                    }
                        .navigationTitle(Text(elementis.ename))
                    )
                    
                }
                
            }

Bild zum Beitrag
Apple, Computer, programmieren, Swift, Technologie, SwiftUI
SwiftUI Search Bar mit Liste?

Ich möchte für meine Liste eine SearchBar implementieren, was ursprünglich auch funktioniert hat, allerdings habe ich ein paar Sachen umgeschrieben und jetzt funktioniert es nicht mehr.

Warum und wie behebe ich es?

struct Elementis: Identifiable{
    var id = UUID()
    var order: String
    var ename: String   
}
let Chemics = [
    Elementis(order: "1", ename: "Wasserstoff"),
    Elementis(order: "2", ename: "Helium"),
    Elementis(order: "3", ename: "Lithium"),
    Elementis(order: "4", ename: "Beryllium"),
    Elementis(order: "5", ename: "Bor"),
]
import SwiftUI

    @State private var searchText = ""
    var Element: [Elementis] = Chemics

 var body: some View{
   List{
                ForEach(Element) { elementis in
                    HStack{
                        NavigationLink(elementis.ename,
                                       destination: Aluminium())
                        
                        //Text(elementis.order)
                    }
                }
           
                
            }
            .navigationTitle("Chemie")
            .searchable(text: $searchText, prompt: "Element suchen...")



}

 var searchResults: [String] {
           if searchText.isEmpty {
               return Element.ename
           } else {
               return Element.ename.filter { $0.contains(searchText) }
           }
       }
}

 

Es kann sein, dass einige Klammern hier auf GuteFrage fehlen, diese sind aber im Programm definitiv drin.

Der Fehler taucht unter "var searchResults" auf und sagt mir je nachdem was ich einsetze verschiedene Meldungen an.

Meistens sind es folgende Meldungen:

"Cannot convert return expression of type 'String' to return type '[String]' "

"Value of type '[Elementis]' has no member 'ename' "

Über ein wenig Hilfe würde ich mich freuen. Besten Dank im Voraus

PC, Computer, Internet, programmieren, Swift, SwiftUI
Neue Liste in SwiftUI?

Ich möchte eine neue Liste unter meine Liste hinzufügen für ein neuen Bereich, allerdings blicke ich nicht warum es nicht geht. Einfach ein neues "List"-Element hinzufügen bringt es nicht. Ich glaube das Problem liegt in der NavigationView, da bin ich mir aber auch nicht sicher.

Kann mir jemand dabei helfen?

Hier ist mein Code und ein Bild von der Ansicht:

import SwiftUI

struct ContentView: View {
    @State private var searchText = ""

    var body: some View {
        VStack{
            NavigationView{
                
                   
                    List{
                        
                        Group{ NavigationLink("Geschwindigkeit",
                                              destination: Velocity())
                            NavigationLink("Strecke",
                                           destination: Strecke())
                            NavigationLink("Beschleunigung",
                                           destination: acceleration())
                        }
                        NavigationLink("Frequenz",
                                       destination: Frequenz())
                        NavigationLink("Kreisfrequenz",
                                       destination: Kreisfrequenz())
                        NavigationLink("Thomson´sche Schwingungsgleichung",
                                       destination: Thomson())
                        NavigationLink("Periodendauer",
                                        destination: Periodendauer())
                        NavigationLink("Schwingungsdauer eines Fadenpendels",
                                       destination: Fadenpendel())
                        NavigationLink("Gewichtskraft",
                                       destination: Gewichtskraft())
                        NavigationLink("Elektrischer Widerstand",
                                       destination: ElekWiderstand())
                        NavigationLink("Eigenfrequenz eines Dipols",
                                       destination: DipolFrequenz())
                        
                        
                                }
                    .navigationTitle("Physik")
                    .navigationBarTitleDisplayMode(.automatic)
                    .navigationViewStyle(.stack)
                    .navigationViewStyle(StackNavigationViewStyle())
               
                
           
          
            }
            
               
            
        }
       
        
        
    }

}

Bild zum Beitrag
Computer, programmieren, Swift, SwiftUI

Meistgelesene Fragen zum Thema SwiftUI