Вращение UIImageView с изменением его кадра с помощью анимации UIView изменяет его размер - PullRequest
0 голосов
/ 21 апреля 2011

В настоящее время у меня возникают проблемы, когда я сначала поворачиваю 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).

Я не гений математики, поэтому для других людей ответ может бытьочевидно, но для меня это не так: (

Надеюсь, кто-то может помочь, и если у вас есть дополнительные вопросы, пожалуйста, оставьте комментарий.

1 Ответ

0 голосов
/ 21 апреля 2011

После небольшого поиска я нашел ответ здесь на stackoverflow.Любой с такой же проблемой, смотрите здесь: Поворот и перемещение UIImageView (CocoaTouch)

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