我想创建一个动画,它将通过一个因子调整UIView及其内容的大小.基本上,我想制作一个动画,首先展开视图,然后将其缩小回原始大小.
做这个的最好方式是什么?我尝试过CALayer.contentScale但它根本没有做任何事情.
我花了很多时间试图找到一种方法来使用CGAffineScale将视图转换为给定点,包括弄乱锚点,在转换之前和之后移动视图的中心以及全面的Google搜索.我知道使用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) {}];
Run Code Online (Sandbox Code Playgroud)