Konvertieren Sie die Koordinaten zwischen übergeordnetem/untergeordnetem UIView nach cgaffinetransform

StackOverflow https://stackoverflow.com/questions/2073427

Frage

Bevor ich alles von Hand mache, möchte ich fragen, ob es Hilfe gibt, um aus dem Framework zu gelangen.

Ich habe eine UIView, die eine andere UIView mit einer Karte enthält. Das übergeordnete UIView enthält einige Legenden für die Karte. Anfangs definiere ich einige Koordinaten in der Kartenansicht. zB (100, 40) und platzieren Sie dort ein Stück Grafik in der Elternansicht (wie ein Tack in Google Maps usw.). Die übergeordnete Ansicht und die Kinderansicht sind beide 300x200 und haben den gleichen Ursprung. Dies bedeutet, dass (100, 40) in beiden Ansichten der gleiche Punkt ist.

Jetzt zoomen und bewege ich die untergeordnete UIView (die Karte) mit CGaffinETransform und die Koordinate (100, 40) befindet sich jetzt woanders. Die Elternansicht ist hier effektiv eine Maske.

Kann ich die CGaffinetransform -Matrix oder einen anderen Teil des Frameworks verwenden, um die übergeordnete Ansicht zu berechnen und zu informieren, wo die Tack abgelegt werden soll, da sich der Punkt bewegt hat?

IE (100, 400) in der Kinderansicht im Vergleich zu (100, 40) in der Elternansicht, womit ist es nach der Transformation verglichen?

Vielen Dank für Vorschläge oder Hilfe gegeben.

Die Animation des Kindes 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];
War es hilfreich?

Lösung

UIView -convertPoint:toView: und -convertPoint:fromView: Sollte für Sie arbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top