Comment mettre à l'échelle (zoomer) un UIView sur un CGPoint donné

J'ai passé beaucoup de temps à essayer de trouver un moyen d'utiliser CGAffineScale pour transformer un point de vue à un moment donné, y compris de déconner avec des points d'ancrage, le déplacement du centre de la vue avant et après la transformation et complète une recherche sur Google. J'en suis conscient, ce serait beaucoup plus simple avec un UIScrollview; mais je sais que c'est techniquement possible de le faire sans l'un, et il est devenu une écharde dans mon esprit.

Cette réponse devient remarquablement proche de ce que je veux réaliser, mais la réponse ne donne de détails sur la façon de zoom à un coin (au lieu d'un point donné) par habilement le déplacement du centre vers le coin opposé à celui que vous souhaitez agrandir.

Comment puis-je modifier mvds' code à l'échelle d'une UIView à un moment donné dans une UIView?

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) {}];

source d'informationauteur glenstorey