Ho passato molto tempo a cercare un modo per utilizzare CGAffineScale per trasformare una vista in un determinato punto, compresi i punti di ancoraggio, spostando il centro di una vista prima e dopo la trasformazione e la ricerca completa su Google. Sono consapevole che sarebbe molto più semplice con un UIScrollview; ma so che è tecnicamente possibile fare a meno di uno, ed è diventato una scheggia nella mia mente.Come ridimensionare (zoomare) un UIView su un dato punto di riferimento CG
This answer si avvicina notevolmente a quello che voglio ottenere, ma la risposta fornisce solo dettagli su come ingrandire un determinato angolo (invece di un punto dato) spostando abilmente il centro nell'angolo opposto a quello che si desidera ingrandisci a.
Come è possibile modificare mvds' code per ridimensionare un UIView a qualsiasi punto specificato in un 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) {}];
Grazie mille per la risposta. Ho provato questo, ma continua a zooma nel punto sbagliato. Ho provato a disegnare anche questo su carta, ma la logica mi sfugge. – glenstorey