Pour mon application SwiftUI, j'ai créé une simple vue Title
, qui a une taille de police et une couleur de texte définies. Title
est déclaré comme suit:
struct Title: View {
var string: String
var body: some View {
Text(string)
.font(.system(size: 32))
.color(Color.black)
}
}
J'ai les objets texte suivants dans le corps de ma vue de contenu en ce moment:
var body: some View {
VStack(alignment: .leading) {
Text("Welcome")
.font(.largeTitle)
.color(Color.black)
Text("to SwiftUI")
.font(.largeTitle)
.color(Color.secondary)
}
}
Alors maintenant, je veux remplacer ces deux Text
s par mes Title
s:
var body: some View {
VStack(alignment: .leading) {
Title("Welcome")
Title("to SwiftUI")
}
}
Après avoir remplacé les vues, je reçois des messages d'erreur apparemment sans rapport avec Xcode, qui empêchent l'application de compiler:
Le membre statique 'leader' ne peut pas être utilisé sur une instance de type 'HorizontalAlignment'
'(LocalizedStringKey) -> Text' n'est pas convertible en '(LocalizedStringKey, String ?, Bundle ?, StaticString?) -> Text'
"Police" n'est pas convertible en "Police?"
...et plus. Revenir à Text
au lieu de Title
"résout" les problèmes.
Ce qui est intéressant, c'est que j'ai également une vue PrimaryButton
personnalisée que j'ai pu ajouter sans aucun problème:
struct PrimaryButton: View {
var title: String
var body: some View {
Button(action: { print("tapped") }) {
Text(title)
.font(Font.primaryButton)
.offset(y: 1)
.padding(.horizontal, 20)
.padding(.vertical, 14)
}
}
}
... puis en l'utilisant:
PrimaryButton(title: "Let's go")
S'agit-il simplement d'un problème bêta ou manque-t-il quelque chose?
Aujourd'hui, 01oct2019, Swift m'a incité à remplacer string:
Par. verbatim:
.
Text(verbatim: "Pressure")
fonctionne aujourd'hui Text(string: "Pressure")
a fonctionné hier mais pas aujourd'hui. hth