2012-04-17 4 views
0

Я хочу создать два метода ... StartSpin и StopSpin. В StartSpin мне нужно, чтобы UIImageView вращался на 360 градусов и зацикливал его, пока я не вызову StopSpin.Monotouch: Создайте прядильное изображение?

Вот мой 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, чтобы остановить вращение?

Благодаря

Mojo

ответ

0

Для того, чтобы спина изображения, вы можете использовать (повернуть на 1 градус):

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

Для того, чтобы спина изображения, просто создать таймера непрерывно вызывает этот метод (и увеличивает степень). Кроме того, создайте значение bool для отслеживания, если вы хотите продолжать вращаться.

Чтобы остановить вращение, просто измените значение bool на false. Затем продолжайте обновление до тех пор, пока не достигнете начала (степень 360 или 0), а значение bool будет ложным.

Если вы не хотите продолжать вращаться, пока изображение не возвращается в исходное положение, просто ликвидировать && 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; 
} 
Смежные вопросы