我有一个UIView,我正试图制作动画。
[UIView beginAnimations:@"scaleAnimation" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.5];
CGRect f = self.frame;
f.size.width = f.size.width * 2;
f.size.height = f.size.height * 2;
self.frame = f;
[UIView commitAnimations];
动画效果很好,但无论如何我可以沿中心制作动画比例吗? 现在,看起来这个点就在左上角。
使用CGAffineTransform scale = CGAffineTransformMakeScale(2.0,2.0);沿着中心做动画,但做一个触摸事件,当我试图检测UIView的透明区域时,这些点似乎搞得一团糟。
谢谢你,
三通
答案 0 :(得分:2)
这很简单。相反,为bounds
设置动画。正如the documentation所说:
更改边界大小会使视图相对于其中心点增大或缩小。
所以你的代码就像这样
[UIView beginAnimations:@"scaleAnimation" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:1.5];
CGRect f = myView.bounds;
f.size.width = f.size.width * 2;
f.size.height = f.size.height * 2;
myView.bounds = f;
[UIView commitAnimations];