сделать uimageView перевернуть другое изображение - PullRequest
0 голосов
/ 21 сентября 2011

вот мой вопрос. Я хотел бы анимировать изображение, я хотел бы, чтобы оно поворачивалось вокруг другого изображения, но я не знаю, как это сделать. Я просто хочу, чтобы он вращался (не вращение, а движение, как будто оно вращается по кругу). Как я могу это сделать, пожалуйста?


вот мой код:

-(void){
CALayer *orbit1 = [CALayer layer];
orbit1.bounds = CGRectMake(0, 0, 200, 200);
orbit1.position = centre.center;
orbit1.cornerRadius = 100;
orbit1.borderColor= [UIColor redColor].CGColor;
orbit1.borderWidth = 1.5;

planet1 = [CALayer layer];
planet1.bounds = CGRectMake(0, 0, 44.0, 20.0);
planet1.position = CGPointMake(160, 25);
planet1.contents = (id)([UIImage imageNamed:@"bouletest_05.png"].CGImage);
[orbit1 addSublayer:planet1];

CABasicAnimation *anim1 = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
anim1.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
anim1.fromValue = [NSNumber numberWithFloat:0];
anim1.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
anim1.repeatCount = HUGE_VALF;
anim1.duration = 10.0;
[orbit1 addAnimation:anim1 forKey:@"transform"];

[self.view.layer addSublayer:orbit1];

}

и затем:

-(void)creation{

imageView2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"abouffer_03.png"]];
[[self view] addSubview:imageView2];
imageView2.center=planet1.center;
}

посмотрите на последнюю строку: imageView2.center = planet1.center; проблема здесь

1 Ответ

3 голосов
/ 21 сентября 2011

Проверьте это сообщение: http://nachbaur.com/blog/core-animation-part-4. Там вы найдете пример того, как анимировать представление вдоль произвольного UIBezierPath.

Таким образом, в вашем случае вам нужно создать круговую окружность вокруг вашего «якорного» изображения:

const CGFloat radius = 100.0f;
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(center.x-radius, center.y-radius, 2*radius, 2*radius)];

и добавить CAKeyFrameAnimation с этим путем к виду изображения, которое вы хотите переместить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...