2012-04-17 5 views
0

私はStartSpinとStopSpinの2つのメソッドを作成したいと思います。 StartSpinでは、UIImageViewを360度回転させてStopSpinを呼び出すまでループする必要があります。ここでモノトゥッチ:回転イメージを作成しますか?

private void StartSpin() {   
    UIView.Animate (
     1, 
     0, 
     UIViewAnimationOptions.Repeat, 
     () => { 
      CGAffineTransform t = CGAffineTransform.MakeIdentity(); 
      t.Translate(0, 0); 
      t.Rotate((float)(3.14)); 
      this._imageViewWait.Transform = t; 
     }, 
     () => {} 
    ); 
} 

は私の二つの質問です。ここ

は私StartSpinだこれまでのところ... ...

  1. は、どのように私はそれを360度回転させるのですか?

  2. 回転を停止するにはどのようなコマンドをStopSpinメソッドで使用しますか?画像スピンを作るために

おかげ

モジョ

答えて

0

、あなたは(1度に回転させる)を使用することができます:

CGAffineTransform rotate = CGAffineTransformMakeRotation(1.0/180.0 * 3.14); 
[imageView setTransform:rotate]; 

画像スピンを作成するには、単純にタイマーを作成このメソッドを継続的に呼び出して(度を増やします)。また、スピンを維持したい場合は、追跡するためのbool値を作成します。

スピンを止めるには、bool値をfalseに変更するだけです。次に、最初に到達するまで(度は360または0)、bool値がfalseになるまで更新を続行します。

あなただけのコードでは&& degrees == 0

を排除し、画像は元の位置になるまで回転を継続したくない場合は、次の

-(void)startSpinning { 
    degrees = 0; 
    continueSpinning = true; 
    [self continueSpinning]; 
} 

-(void)continueSpinning { 
    degrees = (degrees + 1) % 360; 

    CGAffineTransform rotate = CGAffineTransformMakeRotation(degrees/180.0 * 3.14); 
    [imageView setTransform:rotate]; 

    if(!continueSpinning && degrees == 0) return; 
    else [self performSelector:@selector(continueSpinning) withObject:nil afterDelay:0.1f]; 
} 

-(void)stopSpinning { 
    continueSpinning = false; 
} 
関連する問題