Monotouch:创造旋转图像?

时间:2012-04-17 20:39:00

标签: xcode ios5 mono xamarin.ios

我想创建两个方法... StartSpin和StopSpin。在StartSpin中,我需要一个UIImageView旋转360度并循环直到我调用StopSpin。

到目前为止,这是我的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;
        },
        () => {}
    );
}

这是我的两个问题......

  1. 如何让它旋转360度?

  2. 我应该在StopSpin方法中使用什么命令来停止旋转?

  3. 由于

1 个答案:

答案 0 :(得分: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;
}