Question

Avant d'entrer dans tout faire à la main, je voudrais demander s'il y a un peu d'aide pour obtenir du cadre.

J'ai un UIView qui détient une autre UIView avec une carte. La UIView mère détient des légendes pour la carte. Dans un premier temps je définir des coordonnées dans la vue de la carte. par exemple. (100, 40), et placez un morceau de graphiques là dans la vue parent (comme un virement de bord dans google maps, etc.). La vue des parents et la vue des enfants sont à la fois 300x200 et ont la même origine. Cela signifie que (100, 40) est le même point dans les deux vues.

Maintenant, je zoom et de déplacement de l'enfant UIView (carte) en utilisant CGAffineTransform et la coordonnée (100, 40) est maintenant situé ailleurs. La vue parent est effectivement un masque ici.

Puis-je utiliser la matrice CGAffineTransform ou une autre partie du cadre de calcul et d'informer le point de vue des parents où placer le point d'amure maintenant que le point est déplacé?

i.e.. (100, 400) dans la vue de l'enfant par rapport à (100, 40) dans la vue parent, que fait-il à comparer après la transformation?

Merci pour les suggestions ou l'aide fournie.

L'animation de l'enfant UIView

    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:1.0]; 
    CGAffineTransform transform = CGAffineTransformMakeScale(1.8f, 1.8f);
    worldMap.transform = transform;
    worldMap.bounds.origin = newPos;
    [UIView commitAnimations];
Était-ce utile?

La solution

Le -convertPoint:toView: de UIView et -convertPoint:fromView: devraient travailler pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top