Это то, что я хочу сделать:
(1) (2)
| /
| /
| /
| /
|/
*
(3)
Я хочу переместить UIImageView, представленный тактовой меткой (ширина: 9 пикселей, высота 73 пикселя), из положения (1) в положение (2) вокругточка (3), которая является одним концом изображения.Я пытался установить anchorpoint на (0,0) или установить центр изображения в точку (517,177), которая является * (3) местоположением на экране iPad, но у меня ничего не получилось:
Мой градус ToRadiansмакрос определяется следующим образом:
#define degreesToRadian(x) (M_PI * (x) / 180.0)
/ * kmPointer - это UIImageView * /
NSValue *value = nil;
CABasicAnimation *animation = nil;
CATransform3D transform;
kmPointer.layer.anchorPoint = CGPointMake(0, 0);
[kmPointer.layer removeAllAnimations];
animation = [CABasicAnimation animationWithKeyPath:@"transform"];
transform = CATransform3DMakeRotation(degreesToRadian(30), 0.0f, 0.0f, 1.0f);
value = [NSValue valueWithCATransform3D:transform];
[animation setToValue:value];
transform = CATransform3DMakeRotation(0.0f, 0.0f, 0.0f, 1.0f);
value = [NSValue valueWithCATransform3D:transform];
[animation setFromValue:value];
[animation setAutoreverses:NO];
[animation setDuration:1.0f];
[animation setRepeatCount:1];
[kmPointer.layer addAnimation:animation forKey:nil];
Как заставить указатель вращаться вокруг звезды, отмеченной (3)