Я потратил много времени, пытаясь найти способ использовать CGAffineScale, чтобы преобразовать представление в заданную точку, в том числе возиться с опорными точками, перемещать центр до и после преобразования и всеобъемлющего Googling. Я знаю, что это было бы намного проще с UIScrollview; но я знаю, что технически можно обойтись без одного, и это стало осколком в моем сознании.Как масштабировать (масштабировать) UIView для данного CGPoint
This answer значительно приближается к тому, чего я хочу достичь, но в ответе приводятся только подробные сведения о том, как увеличить масштаб до заданного угла (вместо заданной точки), умело перемещая центр в угол, противоположный тому, который вы хотите Увеличьте масштаб до.
Как я могу изменить mvds' code для масштабирования UIView для любой точки 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) {}];
Большое спасибо за ваш ответ. Я попробовал это, но он все еще приближается к неправильной точке. Я пробовал рисовать это и на бумаге, но логика ускользает от меня. – glenstorey