0

うまくいけば簡単な解決策があるという問題があります。ボタン、タイマー、フレーム、cgaffinetransformrotations、および遅延を使用してボブ効果を作成しようとしています。ボタンを回転させて、ボタンのフレームを設定してyを10ピクセル程度増減すると、ボタンのフレームが通常よりも大きくなることを除けば、すべてがすばらしいでしょう。最終結果は、画面を飲み込むまで絶えず大きくなるボタンです。

上向きと下向きの動きをcgaffinetranslationsにしてみましたが、これはtransformプロパティ(回転が使用するものと同じ)を使用します。その結果、非常にびくびくして非現実的なボブになります。

私が達成しようとしているのは、幅と高さを指定せずにフレームの原点コンポーネントを設定することです。ハードコードされた幅と高さを指定しても、回転時に収縮し、平衡に近づくと成長するためです。また。

何か案は?

ありがとう!

コード:

- (void)movePlay{
[self performSelector:@selector(moveDown:) withObject:play];
[self performSelector:@selector(rotateRight:) withObject:play afterDelay:0];
[self performSelector:@selector(moveUp:) withObject:play afterDelay:0.5];
[self performSelector:@selector(rotateLeft:) withObject:play afterDelay:1];

}

- (void)moveUp:(UIButton*)log{

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.5];
log.transform = CGAffineTransformMakeTranslation(0, -20);
[UIView commitAnimations];

}

- (void)rotateRight:(UIButton*)log{

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
log.transform = CGAffineTransformMakeRotation(0.0174532925*10);
[UIView commitAnimations];

}
4

1 に答える 1

1

これは単なるアイデアです。すべての個別の変換を組み合わせてみてください。したがって、独立してコミットする代わりに

log.transform = CGAffineTransfor..., 

最初にそれらを組み合わせる

CGAffineTransformConcat(CGAffineTransform t1, CGAffineTransform t2);
CGAffineTransformRotate(CGAffineTransform t1, CGFloat angle);
etc.
于 2012-04-10T01:15:38.413 に答える