0

アニメーション化しようとしている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の透明な領域を検出しようとすると、ポイントがすべて混乱しているように見えます。

ありがとう、
ティー

4

1 に答える 1

2

簡単だ。代わりにアニメーション化しboundsます。ドキュメントにあるように:

境界サイズを変更すると、中心点を基準にしてビューが拡大または縮小されます。

したがって、コードは次のようになります

[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];
于 2012-05-22T22:14:56.697 に答える