Использовать CoreAmination.
self.layer.transform = CATransform3DRotate(self.layer.transform, M_PI, 0.f, 0.f, 1.f);
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
animation.toValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
animation.autoreverses = NO;
animation.duration = 1.00;
//animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
animation.repeatCount = HUGE_VALF;
[self.layer addAnimation:animation forKey:@"spinner"];