2

ユーザーが手動で中断するまで、NSButton を時計回りに回転させようとしています。これを達成するために私が使用しているコードは次のとおりです。ある時点で機能していたことは知っています。それを修正する方法はありますか?前もって感謝します!

 
    CABasicAnimation *a = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
    a.fromValue = [NSNumber numberWithFloat:0];
    a.toValue = [NSNumber numberWithFloat:-M_PI*2];
    [self.reloadButton.layer setAnchorPoint:CGPointMake(0.5, 0.5)];
    a.duration = 2.0; // seconds
    a.repeatCount = HUGE_VAL;
    [self.reloadButton.layer addAnimation:a forKey:nil];
 
4

3 に答える 3

-2

[編集1]

これが NS 対 UI ボタン​​であることを確認した後、いくつかのオプションがあります。

1) NSTimer と OSX バージョンに適したローテーション ルーチンを使用します (以下のリンクを参照)。

http://digerati-illuminatus.blogspot.com/2009/09/how-do-you-rotate-nsbutton-nstextfield.html

2) OSX 10.5 以降を使用している場合、CoreAnimation はサポートされており、実際には以下が NSButton でサポートされているはずです。

ウィキリンク

http://en.wikipedia.org/wiki/Core_Animation

[オリジナル] 代わりに次のコードを試してください:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:5000000];
CGAffineTransform rr=CGAffineTransformMakeRotation(5000000);
reloadButton.transform=CGAffineTransformConcat(reloadButton.transform, rr);
[UIView commitAnimations];

これは、両方の方法を示すSOの質問へのリンクです

UIView の回転

于 2012-06-28T00:54:34.293 に答える