Посмотреть вращение в касанияхMoved - PullRequest
1 голос
/ 12 октября 2009

Я поворачиваю вид на 45 градусов при каждом перетаскивании. Вот мой код Проблема здесь в том, что вид поворачивается только один раз. После этого нет вращения. В чем будет причина? Любая помощь

  - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
      CGContextRef context = UIGraphicsGetCurrentContext();
      [UIView beginAnimations:nil context:context];
      [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
      [UIView setAnimationDuration:0];
      dialView.transform = CGAffineTransformMakeRotation(45* M_PI/180);
      [UIView commitAnimations];
   }

Ответы [ 2 ]

1 голос
/ 02 сентября 2010

Вы также можете использовать CGAffineTransformRotate для поворота от его настоящего transform, например:

dialView.transform = CGAffineTransformRotate(dialView.transform, 45 * M_PI / 180);
0 голосов
/ 02 сентября 2010

Вращение всегда относительно 0. Если вы поворачиваетесь на x несколько раз, оно будет вращаться только в первый раз. Если вы хотите поворачивать на 45 каждый раз, когда вызываете этот код, вам понадобится счетчик, и он будет выглядеть так:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
  step++;//You are supposed to keep this variable global.
  CGContextRef context = UIGraphicsGetCurrentContext();
  [UIView beginAnimations:nil context:context];
  [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
  [UIView setAnimationDuration:0];
  dialView.transform = CGAffineTransformMakeRotation(45*step* M_PI/180);
  [UIView commitAnimations];

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...