В настоящее время у меня возникают проблемы, когда я сначала поворачиваю UIImageView, а затем анимирую его кадр.Как только я начинаю анимировать его кадр на target_position, мое изображение меняет его размер.Он становится шире и выше (в зависимости от угла поворота)
Код, который я сейчас использую для поворота:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if (!isAnimating) {
isAnimating = YES;
UITouch *t = [[touches allObjects] lastObject];
float angle = atan2([t locationInView:self.view].y - player.frame.origin.y, [t locationInView:self.view].x - player.frame.origin.x) * 180 / M_PI;
NSLog(@"Angle: %f", angle);
CGAffineTransform cgCTM = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(angle));
[player setTarget_position:CGRectMake([t locationInView:self.view].x, [t locationInView:self.view].y, player.image.size.width-angle, player.image.size.height+angle)];
[UIView beginAnimations:@"rotatePlayer" context:nil];
[UIView setAnimationDuration:2];
player.transform = cgCTM;
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(playerFinishedRotating)];
[UIView commitAnimations];
}
}
Само вращение работает нормально.И вот код функции playerFinishedRotating:
- (void)playerFinishedRotating {
[UIView beginAnimations:@"rotatePlayer" context:nil];
[UIView setAnimationDuration:3];
[player setFrame:[player target_position]];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(playerFinishedAnimating)];
[UIView commitAnimations];
}
Для меня логично, что размер моего UIImageVie изменяется при его вращении.Но я застрял на том, как настроить значения ширины и высоты моего фрейма target_position с данными данными (угол поворота fe).
Я не гений математики, поэтому для других людей ответ может бытьочевидно, но для меня это не так: (
Надеюсь, кто-то может помочь, и если у вас есть дополнительные вопросы, пожалуйста, оставьте комментарий.