0

您好,我想制作帧更改的动画。但我在互联网上找不到类似的东西。我知道如何动画帧变化,但棘手的部分是,例如我有一个正方形,我希望它缩小到中心。那么我如何改变框架来实现呢?

我是否必须更改框架的宽度和高度以及框架的原点,或者可能有一些更简单的解决方案?

任何有关如何做的帮助或参考将不胜感激!提前致谢!

4

4 回答 4

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"];
于 2012-10-12T07:23:45.860 回答
1

在开始动画之前设置帧并在动画块内将帧更改为指向实际帧的中心。您需要为此设置高度/宽度以及原点。这就是通常的做法。

于 2012-10-12T07:21:56.220 回答
1

您需要使用视图中心:

CGPoint *center = view.center;
view.frame = CRectMake (0,0,100,200); //set new frame;
view.center = center;
// here you should start animation
于 2012-10-12T07:23:51.700 回答
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];

这是为了使视图更大。如果你想让视图缩小,那么只需将变换线相互替换即可。

希望能帮助到你!:)

于 2012-10-12T07:26:35.737 回答