私はうまくいけば簡単な解決策があるという問題があります。私は、ボタン、タイマー、フレーム、cgaffinetransformrotations、および遅延を使用してボブ効果を作成しようとしています。ボタンを回転させてボタンのフレームを設定して、yを10ピクセルほど減らすか増やすと、ボタンのフレームが通常よりも大きくなります。最終的な結果は、画面を呑み込むまで常に増加するボタンです。フレームのCGPointのみを設定してください
私は上向きおよび下向きの動きをcgaffinetranslationsにしようとしましたが、これはtransformプロパティ(回転と同じもの)を使用しています。結果は非常に不安定で非現実的なボブです。
私が達成しようとしているのは、幅と高さを指定することなく、フレームの原点コンポーネントを設定することです。ハードコードされた幅と高さを指定するだけで、再び平衡に近づいている。
アイデア?
ありがとうございます!
CODE:
- (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];
}
だけヒントを使用して最初にそれらを結合:「transformプロパティをした場合の警告(ないアイデンティティは、このプロパティの値を変換するフレームであります)は定義されていないため、無視する必要があります。つまり、フレームの代わりに境界を設定する必要があります。 – lukasz