Wie greife ich auf Eigenschaften der zugrunde liegenden Ansicht im benutzerdefinierten SwiftUI ViewModifier zu?IOS

Programmierung für iOS
Guest
 Wie greife ich auf Eigenschaften der zugrunde liegenden Ansicht im benutzerdefinierten SwiftUI ViewModifier zu?

Post by Guest »

Während ich versuche zu erfahren, wie ViewModifiers verwendet werden können, frage ich mich, ob es möglich ist, auf die Eigenschaften der zugrunde liegenden Ansicht innerhalb des Modifikators zuzugreifen:
Zum Beispiel I möchte einen Modifikator .addPrefix("Foo") erstellen, der das Präfix zu einer Textansicht hinzufügt:

Code: Select all

Text("bar")
.addPrefix("Foo: ")

--> shows "Foo: bar"

struct AddPrefixModifier: ViewModifier {
let prefix: String

func body(content: Content) -> some View {
if let textContent = extractText(from: content) {
Text("\(prefix)\(textContent)")
} else {
content
}
}

private func extractText(from content: Content) -> String? {
if let text = content as? Text,
return text.text
} else {
eturn nil
}
}
}

extension Text {
func addPrefix(_ prefix: String) -> some View {
self.modifier(AddPrefixModifier(prefix: prefix))
}
}
Dies funktioniert nicht, da Inhalt nicht in Text umgewandelt werden kann. Wenn es möglich wäre, gibt es keine Eigenschaft, um auf den enthaltenen Text zuzugreifen.
Ist das also überhaupt möglich?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post