我想创建两个方法... 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;
},
() => {}
);
}
这是我的两个问题......
如何让它旋转360度?
我应该在StopSpin方法中使用什么命令来停止旋转?
由于
魔
答案 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;
}