Как повернуть слой в определенной точке привязки без пропуска?

Я хочу повернуть слой с изображением в верхнем левом углу, а не в центре. В соответствии с документами я установил для свойства anchorPointзначение [0, 1]. В моем примере вид поворачивается на 50°, но перед тем, как он начнет анимироваться, вид переходит в другую точку на экране.

self.shakeTag.layer.anchorPoint = CGPointMake(0.0f, 1.0f);
[UIView beginAnimations:@"rotate" context:nil];
[self.shakeTag.layer setTransform:
  CATransform3DRotate(CATransform3DIdentity,
  radians(50.0), 0.0f, 0.0f, 1.0f)];
[UIView commitAnimations];

radians()определяется следующим образом:

static inline double radians (double degrees) {return degrees * M_PI/180;}

Когда я использую изображение, которое в 4 раза больше и имеет много прозрачных пикселей, я могу повернуть его в точке привязки по умолчанию [0,5, 0,5] , но я не хочу тратить место на невидимые пиксели. Любые идеи, как я могу предотвратить скачок слоя до того, как произойдет вращение?

11
задан Rafael Bugajewski 10 March 2012 в 10:36
поделиться