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

ビュー縮小コードが必要な場合は、こちらをご覧ください。

    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 に答える
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 に答える