title: Rotate UIView iPhone
body: <p>I am working on a puzzle game and I need to rotate the puzzle pieces to <code>90</code> degrees angle on every double tap.</p>
  
  <p>I have tried to do did using two different ways. First method is this one:</p>
  
  <pre><code>[UIView beginAnimations:@"rotate" context:nil];
  [UIView setAnimationDuration:0.5];
  self.transform = CGAffineTransformMakeRotation(90);
  [UIView commitAnimations];
  </code></pre>
  
  <p>The only problems with that are that the piece is NOT rotating <code>90</code> degrees; it is rotating by around <code>100</code> degrees, and that this animation is modifying the frame of the puzzle piece <code>UIView</code>.</p>
  
  <p>This is my console output:</p>
  
  <pre><code>frame BEFORE ROTATION: {{35, 178}, {80, 80}}
  
  frame AFTER ROTATION: {{21.3172, 164.317}, {107.366, 107.366}}
  </code></pre>
  
  <p>The second method I tried was this one:</p>
  
  <pre><code>CABasicAnimation* spinAnimation = [CABasicAnimation
                                         animationWithKeyPath:@"transform.rotation"];
  spinAnimation.toValue = [NSNumber numberWithFloat:1];
  [self.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
  </code></pre>
  
  <p>The problem with this method is that after finishing the rotation, it is reversing my <code>UIView</code> to its previous state.</p>
  
  <p>How can I rotate the puzzle piece with an animation without having these problems?</p>