J'utilise Pour résoudre le problème, je vois trois solutions possibles: b> p> La première option est d'une manière ou d'une autre pour affecter la référence La seconde serait de trouver un autre moyen de modifier la couleur de fond de mon et la troisième option serait de réinitialiser le et merci pour chaque réponse p> Dans cette image, vous pouvez voir ce qui me fait croire que la troisième option n'est pas possible: b>
uiscrollview.apparance (). BackgroundColor code> Pour changer la couleur de fond de mon contenuView. Mais malheureusement, cela a l'effet secondaire que les couleurs de mon
modalview () code> ne sont plus normales.
uiscrollview.apparance (). BackgroundColor = uicolor.red code> uniquement au premier
ScrollView code>. P>
contentView () code>. P>
uiscrollview.apparance (). BackgroundColor code> dans
modalview () code> Retour au réglage par défaut. ( Edit: Je pense maintenant que la troisième option n'est pas possible b>) p>
Ceci est mon modalview () code> avec les "beaux" effets secondaires
P>
- L'intérieur du champ de texte sélectionné est décoloré
- Les suggestions de correction automatique sont également décolorées
- avec le mode sombre allumé il devient encore pire
de
p> p>
3 Réponses :
Appliquez simplement la couleur d'arrière-plan directement à la vue de défilement.
return VStack{ ScrollView { // This ScrollView should be affected by the initializer Text("Text 1") } .background(Color.red) ScrollView { // This ScrollView should NOT be affected by the initializer Text("Text 2") } }
Non, ce n'est pas la solution à mon problème. Cela peut fonctionner dans l'exemple du code ci-dessus, mais comme je l'ai déjà dit, il s'agit d'une version très simplifiée. Et malheureusement, cela ne fonctionne pas dans mon vrai projet. Mais merci pour la réponse quand même. Et j'ai édité un peu le code pour en faire plus comme mon vrai projet.
@ Mattstisschulte est là une raison pour laquelle vous devez utiliser l'apparence () code> API alors? Vous pouvez toujours le remplacer pour des vues individuelles.
Oui, j'ai besoin de l'apparence () code> API, car il s'agit du moyen le plus simple de modifier la couleur de fond de Contenview, y compris la barre de navigation, lors de l'utilisation de
ScrollView code> et
et
NavigationView code> ensemble. Mais vous avez raison que je puisse toujours le remplacer pour des vues individuelles. Donc, si je pouvais trouver un moyen de régler l'apparence API à défaut, mon problème serait résolu.
Utilisez uniquement l'apparence () si SWIFTUI ne peut pas atteindre ce que vous voulez. Changer la couleur d'arrière-plan d'une vision de défilement à Swiftui ne devrait pas être un problème, il n'ya donc absolument aucun besoin d'apparence ()
@MaMaessen Malheureusement, modifiant la couleur de fond lors de l'utilisation de ScrollView code> et
NavigationView code> est un très gros problème. Mais si vous voulez en savoir plus sur ce sujet, ici A> est une bonne question.
L'arrière-plan par défaut de l'arrière-plan pour une feuille est SecondySystembackground.
Ok, maintenant après avoir modifié la question, je comprends votre problème.
Non, cela ne fonctionne pas non plus sans effets secondaires. Mais j'ai ajouté une description exacte des effets secondaires à la question.
Vous pouvez spécifier une vue modale comme cas spécifique comme suit: Si vous voulez un meilleur résultat, spécifiez simplement la sous-classe d'UiscrollView. P> UIScrollView.appearance().backgroundColor = UIColor.red
UIScrollView.appearance(whenContainedInInstancesOf: [UIPresentationController.self]).backgroundColor = UIColor.clear
UITableView.appearance(whenContainedInInstancesOf: [UIPresentationController.self]).backgroundColor = UIColor.secondarySystemBackground
En tout cas intéressant, mais malheureusement, il y a les mêmes problèmes que dans la réponse de @Mamaessen
Vous pouvez toujours personnaliser la vue sur ce que vous attendiez.
Ne changez pas l'apparence de
uiscrollview code> alors. Appliquez le modificateur dans le
ScrollView CODE> CODE>
Mais malheureusement, je ne peux pas comprendre comment faire ça.
Utilisez simplement le modificateur de .background (Color.red) sur votre ScrollView ().