2010-02-02 5 views
2

J'applique une application de carte similaire à l'application de cartes et j'essaie d'ajouter un zoom. J'ai plusieurs niveaux de détail, par ex. 6, et je veux utiliser le niveau approprié pour l'échelle de zoom actuelle. J'utilise un CATiledLayer dans un UIScrollView. Jusqu'à présent, je peux définir le zoom min/max dans le UIScrollView, drawLayer est appelé et je dessine la tuile appropriée, mais cela utilise seulement mon premier niveau de carte. Maintenant, je veux définir levelsOfDetail dans CATiledLayer afin que je puisse utiliser le niveau de détail approprié.Zoomer avec un CATiledLayer dans un UIScrollView

Ma question est, comment puis-je savoir à quel niveau je devrais dessiner? Le paramètre tileSize de CATiledLayer est toujours le même, tout comme le rectangle de détourage. Je peux voir quand drawLayer est appelé pour le nouveau niveau de détail, mais comment dire quel est ce niveau.

Répondre

3

Définissez les niveaux de détail et le biais avant. Ensuite, lorsque vous êtes appelé à dessiner, regardez le cadre de la vue en cours de zoom par la vue déroulante et comparez-le aux limites. Cela devrait vous donner l'information nécessaire pour déterminer ce que vous dessinez. Regardez aussi les bornes du chemin du clip pour voir "où" le CATiledLayer travaille ensuite.

Questions connexes