Skalieren (Zoomen) einer UIView auf einen bestimmten CGPoint

Ich habe viel Zeit damit verbracht, eine Möglichkeit zu finden, CGAffineScale zu verwenden, um eine Ansicht auf einen bestimmten Punkt zu transformieren, einschließlich Herumspielen mit Ankerpunkten, Verschieben des Mittelpunkts einer Ansicht vor und nach der Transformation und umfassendes Googeln. Mir ist bewusst, dass dies mit einer UIScroll-Ansicht viel einfacher wäre. aber ich weiß, dass es technisch möglich ist, auf eines zu verzichten, und es ist ein Splitter in meinem Kopf geworden.

Diese Antwort kommt dem, was ich erreichen möchte, bemerkenswert nahe, aber die Antwort gibt nur Details darüber, wie man auf eine bestimmte Ecke zoomt (anstatt auf einen bestimmten Punkt), indem man den Mittelpunkt geschickt auf die Ecke gegenüber derjenigen verschiebt, auf die man zoomen möchte.

Wie kann ich ändernmvds'code kann ich eine UIView auf einen bestimmten Punkt in einer UIView skalieren?

CGFloat s = 3;
CGAffineTransform tr = CGAffineTransformScale(self.view.transform, s, s);
CGFloat h = self.view.frame.size.height;
CGFloat w = self.view.frame.size.width;
[UIView animateWithDuration:2.5 delay:0 options:0 animations:^{
    self.view.transform = tr;
    self.view.center = CGPointMake(w-w*s/2,h*s/2);
} completion:^(BOOL finished) {}];

Antworten auf die Frage(2)

Ihre Antwort auf die Frage