您好,我想制作帧更改的动画。但我在互联网上找不到类似的东西。我知道如何动画帧变化,但棘手的部分是,例如我有一个正方形,我希望它缩小到中心。那么我如何改变框架来实现呢?
我是否必须更改框架的宽度和高度以及框架的原点,或者可能有一些更简单的解决方案?
任何有关如何做的帮助或参考将不胜感激!提前致谢!
您好,我想制作帧更改的动画。但我在互联网上找不到类似的东西。我知道如何动画帧变化,但棘手的部分是,例如我有一个正方形,我希望它缩小到中心。那么我如何改变框架来实现呢?
我是否必须更改框架的宽度和高度以及框架的原点,或者可能有一些更简单的解决方案?
任何有关如何做的帮助或参考将不胜感激!提前致谢!
CGRect previousRect = view.layer.bounds;
CGRect newRect = previousRect;
newRect.size = size; // In your case define the new size (CGSize size)
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"bounds"];
animation.fromValue = [NSValue valueWithCGRect:previousRect];
animation.toValue = [NSValue valueWithCGRect:newRect];
[view.layer addAnimation:animation forKey:@"bounds"];
在开始动画之前设置帧并在动画块内将帧更改为指向实际帧的中心。您需要为此设置高度/宽度以及原点。这就是通常的做法。
您需要使用视图中心:
CGPoint *center = view.center;
view.frame = CRectMake (0,0,100,200); //set new frame;
view.center = center;
// here you should start animation
如果您需要 View Shrinking Code,就在这里。
myView.transform=CGAffineTransformMakeScale(0.1, 0.1);
[UIView beginAnimations:@"animationExpand" context:NULL];
[UIView setAnimationDuration:0.4];
myView.transform=CGAffineTransformMakeScale(1, 1);
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
这是为了使视图更大。如果你想让视图缩小,那么只需将变换线相互替换即可。
希望能帮助到你!:)