0

II は、StartSpin と StopSpin の 2 つのメソッドを作成したいと考えています。StartSpin では、360 度回転して StopSpin を呼び出すまでループする UIImageView が必要です。

ここまでが私の StartSpin です...

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;
        },
        () => {}
    );
}

これが私の2つの質問です...

  1. 360度回転させるにはどうしたらいいですか?

  2. 回転を停止するには、StopSpin メソッドでどのコマンドを使用すればよいですか?

ありがとう

モジョ

4

1 に答える 1

0

画像を回転させるには、(1 度回転) を使用できます。

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

画像を回転させるには、このメソッドを継続的に呼び出す (そして角度をインクリメントする) タイマーを作成するだけです。また、回転を続けたい場合は、追跡するブール値を作成します。

スピンを停止するには、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;
}
于 2012-04-26T00:32:09.640 に答える