UIView commitAnimations - 沿中心缩放
Posted
技术标签:
【中文标题】UIView commitAnimations - 沿中心缩放【英文标题】:UIView commitAnimations - scale along center 【发布时间】:2012-05-22 22:01:19 【问题描述】:我有一个 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 缩放 = CGAffineTransformMakeScale(2.0, 2.0);沿着中心做动画,但是做一个触摸事件,当我试图检测 UIView 的透明区域时,这些点似乎都搞砸了。
谢谢你, 三通
【问题讨论】:
【参考方案1】:这很简单。而是为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];
【讨论】:
嘿大卫,所以使用边界确实使 UIView 最终居中。然而,在动画期间,UIView 实际上是在奇怪地移动,因为它在最终停在正确的位置之前曲折。关于可能导致它的任何想法?谢谢! 对不起,它不应该那样做。当我尝试上面的代码时,只创建一个视图,设置它的背景颜色并为其边界设置动画,但它并没有这样做。我建议发布另一个问题以引起更多关注,看看其他人是否知道。尽管您可能必须显示比这更多的代码,因为问题可能出在其他地方。也许在动画之前展示如何在其他地方创建或操作视图。以上是关于UIView commitAnimations - 沿中心缩放的主要内容,如果未能解决你的问题,请参考以下文章
iOS动画和特效UIView动画和CoreAnimation
使用 NavigationController.PushViewController 的 BeginAnimations 和 CommitAnimations