2011-09-01 10 views
14

ボールのイメージを内側にしてUIImageviewを連続的に回転させようとしているときに問題があります。私はこのボールをその中心軸上で連続的に回転させたいと思います。 CGAffineTransformを使用しようとしましたが、動作しませんでした。スピンUIImageViewを連続的に

助けてください!

+0

あなたは 'UIImageView'内でボールを回転させる必要がありますか?もしそうなら 'UIImageView'自身のアニメーションメソッドを使用することを検討してください – Saphrosit

答えて

4

それはあなたのような変換を使用する場合は動作するはずです:

itemToRotate.transform = CGAffineTransformRotate(itemToRotate.transform, currentAngle); 

私は実用的なソリューションの一部sample codeをアップロードしました。あなたのロジックを追加して自動的に回転させてください。

+0

リンクはウォークしません:| –

+0

おっと...私はCloudAppアカウントによって削除されました。これはXO – tipycalFlow

80

これは古いQかもしれませんが、トピックの検索結果の一番上にあります。ここではより多くのカットとドライ解決策だ:(QuartzCoreをインポートすることを確認してください/ QuartzCore.h)

CABasicAnimation *rotation; 
rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
rotation.fromValue = [NSNumber numberWithFloat:0]; 
rotation.toValue = [NSNumber numberWithFloat:(2*M_PI)]; 
rotation.duration = 1.1; // Speed 
rotation.repeatCount = HUGE_VALF; // Repeat forever. Can be a finite number. 
[yourView.layer addAnimation:rotation forKey:@"Spin"]; 

その後、停止削除するには/アニメーションをリセットします(ストップ・イン・配置する方法についてのコメントを参照してください)迅速で

[yourView.layer removeAnimationForKey:@"Spin"]; 

let rotation = CABasicAnimation(keyPath: "transform.rotation") 
rotation.fromValue = 0 
rotation.toValue = 2 * M_PI 
rotation.duration = 1.1 
rotation.repeatCount = Float.infinity 
view.layer.addAnimation(rotation, forKey: "Spin") 
+0

がホストされていて、どのような宝石でしたか?ありがとうございます –

+0

@Christopher Swaseyアニメーションキーをアニメーションの途中で削除すると、ビューは元の状態になり、変換された状態にはなりません。どのような方法で変換を維持する? – tGilani

+1

@tGilani、変換を保存するには、CABasicAnimationを設定するときに単に 'rotation.removedOnCompletion = NO;'を追加してください。これにより、アニメーションのプレゼンテーションレイヤーが表示されたままになります。 iOSのアニメーションで使用されるさまざまなレイヤの詳細については、この記事が非常に参考になりました。[リンク](http://stackoverflow.com/a/11515749/1114876) – adamup

関連する問題