我花了很多时间试图找到一种使用 CGAffineScale 将视图转换为给定点的方法,包括处理锚点、在转换前后移动视图中心以及全面的谷歌搜索。我知道使用 UIScrollview 会简单得多;但我知道从技术上讲,没有它是可能的,它在我的脑海中变成了碎片。
这个答案非常接近我想要实现的目标,但答案仅提供了有关如何通过巧妙地将中心移动到与您想要放大的角相对的角来缩放到给定角(而不是给定点)的详细信息到.
如何修改mvds的代码以将 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) {}];