Итак, наконец, то, что я спросил, может быть достигнуто с помощью следующего кода, предложенного капитаном:
- (void)viewDidLoad
{
// CGPoint originalLabelsOrigin is declared as a property
originalLabelsOrigin = self.label.frame.origin;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
self.label.layer.anchorPoint = CGPointMake(1.0, 1.0);
self.label.layer.frame = CGRectMake(originalLabelsOrigin.x, originalLabelsOrigin.y, self.label.frame.size.width, self.label.frame.size.height);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2];
self.label.transform = CGAffineTransformMakeRotation(M_PI/2);
[UIView commitAnimations];
}
Все еще не совсем уверен с причиной, но это работает.