5
votes

Bogue de l'image d'annotation sélectionnée pour iOS 14 MapKit

Tout d'abord, j'ai rencontré un problème qui ne venait qu'avec iOS 14. Je n'ai pas un tel problème avec les anciennes versions.

Je change l'image de l'épingle lorsque je choisis parmi les épingles sur la carte et jette une image orange. En faisant cette mission, je vois certains des actifs que j'utilise dans l'application lors de ce changement sur les appareils iOS 14.

Première impression:

Avant

Au moment où la broche est sélectionnée:

Pendant

Une fois la broche sélectionnée:

Après

Lorsque la broche est sélectionnée, les actifs n'apparaissent pas normalement, la broche a été sélectionnée directement. Maintenant, une telle situation est intervenue.

Les codes que j'utilise dans les situations de clics d'épingle sur la carte sont les suivants

func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
    view.image = UIImage(named: "pin_selected")
}

func mapView(_ mapView: MKMapView, didDeselect view: MKAnnotationView) {
    view.image = UIImage(named: "pin")
}

C'est une situation qui passe en quelques secondes, mais comment puis-je résoudre ce problème?


0 commentaires

3 Réponses :


2
votes

J'ai eu le même problème, et après avoir beaucoup lutté, je me suis rendu compte que c'était un problème avec l'image. Certaines métadonnées de gauche dans l'image provoquent probablement le problème lorsque l'annotation s'anime entre les états. Ce que j'ai fait, c'était d'exporter à nouveau l'image de l'annotation à partir des conceptions et de la remplacer dans le projet, ce qui a résolu le problème.


1 commentaires

J'ai augmenté la hauteur de l'une des images de 1 dans Adobe XD et le problème a été résolu. C'est ridicule, mais c'était ma solution. Les icônes que j'ai créées à partir de zéro ne fonctionnaient pas non plus, je suppose qu'un tel bug se produit lorsque la taille est petite.



2
votes

Ran dans ce problème aussi. Un correctif qui a fonctionné pour moi est de mettre les images dans un Sprite Atlas: sélectionnez la bibliothèque d'actifs dans Xcode, appuyez sur le bouton + en bas à gauche, sélectionnez Nouvel Atlas Sprite, puis faites glisser les images de la bibliothèque d'actifs dans le dossier Sprites.

Pour moi, le problème ne se produisait qu'avec de petites images PNG. Les JPEG ou les grands PNG (j'ai essayé 256x256 et réduit) semblaient bien fonctionner. Cependant, j'ai fini par utiliser la solution de contournement ci-dessus car les petits fichiers PNG sont idéaux pour ces icônes d'épingle de carte. Les appareils que j'ai testés exécutaient iOS 14.0.1.


0 commentaires

1
votes

J'ai le même problème, mais j'ai testé sur la version bêta d'iOS 14.3 et le problème ne s'est plus produit.


0 commentaires