Je rencontre un problème avec le dessin à des zones en dehors du MKMapRect
passé à drawMapRect:mapRect:zoomScale:inContext
dans ma classe dérivée MKOverlayView
. J'essaye de dessiner un triangle pour chaque coordonnée dans une collection et le problème se produit quand la coordonnée est près du bord du MKMapRect
. Voir l'image ci-dessous pour un exemple du problème.Coupure dans MKOverlayView: drawMapRect
Dans l'image, les boîtes de lumière rouge indiquent le MKMapRect
étant rendus dans chaque appel à drawMapRect
. Le problème est illustré dans le cercle rouge où, comme vous pouvez le voir, seule une partie du triangle est rendue. Je suppose qu'il est coupé au MKMapRect
, bien que la documentation pour MKOverlayView:drawMapRect
me fasse penser que cela ne devrait pas se produire.
De la documentation:
Vous ne devriez pas faire des hypothèses que le cadre de la vue coïncide avec le rectangle de délimitation de la superposition. Le cadre de la vue est en fait plus grand que le rectangle de délimitation pour vous permettre de dessiner des lignes pour des choses comme des routes qui pourraient être situées directement sur la bordure de ce rectangle.
Ma solution actuelle est de dessiner des objets plus d'une fois si elles sont dans un maprect qui est légèrement plus grande que puis maprect donné à drawMapRect mais cela me fait de tirer certaines choses plus que nécessaire.
Est-ce que quelqu'un connaît un moyen d'augmenter la taille de la zone de découpage dans drawMapRect donc ce n'est pas un problème? Toutes les autres suggestions sont également les bienvenues.