Hello tout le monde,
Je viens d’installer un slider d’image avec une TabView mais j’ai des problèmes de chargements mes images. Ca marche niquel pour des images du asset catalogue mais avec des images téléchargées via un webservice, ca pose problème.
Admettons qu’on a trois images, la première charge et s’affiche. J’obtiens trois petits points sous la photo :
Si je slide sur la droite, je passe à la deuxième image qui commence à charger et la tabView me ramène tout de suite sur la première image.
Si je recommence, l’image étant déjà pré-chargée, la tabView reste bien sur la deuxième image.
Comment éviter ce comportement ? Est-ce qu’il faut que je charge en avance les autres images au moment de l’affichage de la première ?
Voici mon code :
if !viewModel.fungus.posterPath.isEmpty {
TabView {
ForEach (viewModel.fungus.posterPath) { posterPath in
AsyncImage(url: URL(string: posterPath.path),transaction: .init(animation: .spring())) { phase in
switch phase {
case .empty:
ProgressView()
case .success(let image):
image.resizable().scaledToFill()
case .failure:
Text("Impossible de charger l'image. Vérifier votre connection internet")
.foregroundColor(.red)
@unknown default:
Text("Erreur inconnue")
.foregroundColor(.red)
}
}
.frame(height: 220)
.clipShape(RoundedRectangle(cornerRadius: 10))
.padding(.horizontal, 10.0)
.padding(.bottom, 5.0)
}
}
.tabViewStyle(PageTabViewStyle())
.frame(height: 230)
}
Merci d’avance pour votre aide !!