您好我想制作一个帧更改动画。但我在互联网上找不到类似的东西。我知道如何动画帧变化,但棘手的部分是,例如我有一个正方形,我希望它缩小到中心。那么我如何改变框架来实现呢?
我是否必须更改框架宽度和高度以及框架的原点,或者是否有更简单的解决方案?
任何有关如何操作的帮助或参考将非常感谢! 提前谢谢!
答案 0 :(得分:3)
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"];
答案 1 :(得分:1)
在开始动画之前设置帧,在动画块内部将帧更改为指向实际帧的中心。您需要设置高度/宽度以及原点。这就是通常的做法。
答案 2 :(得分:1)
您需要使用视角:
CGPoint *center = view.center;
view.frame = CRectMake (0,0,100,200); //set new frame;
view.center = center;
// here you should start animation
答案 3 :(得分:1)
如果您需要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];
这是为了使视图更大。如果你想让视图缩小,那么只需将变换线相互替换即可。
希望它有所帮助! :)