как я могу прервать / остановить анимацию при вращении? - PullRequest
1 голос
/ 28 декабря 2011

Например, я использую анимацию в альбомной ориентации, длительность составляет 5,0 с, от состояния А до В;в середине 5.0-х я могу поворачивать iPad из пейзажа в портрет.Я хочу, чтобы анимация была остановлена, и после поворота установите статус пользовательского интерфейса на C.

Я не уверен, что мой вопрос ясенКак я могу это сделать?

мой код анимации:

- (void)moveImage:(UIImageView *)image duration:(NSTimeInterval)duration x:(NSNumber*)dx y:(NSNumber*)dy
{

    // Setup the animation
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:duration];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationBeginsFromCurrentState:YES];

    // The transform matrix
    float fx = [dx floatValue];
    float fy = [dy floatValue];

    CGAffineTransform transform = CGAffineTransformMakeTranslation(fx, fy);
    //CGAffineTransform transform = CGAffineTransformMakeRotation(0.4);
    //CGAffineTransform transform = CGAffineTransformMakeScale(2.0, 2.0);

    image.transform = transform;

    // Commit the changes
    [UIView commitAnimations];    
}

1 Ответ

2 голосов
/ 28 декабря 2011
  1. Запуск и остановка явных анимаций имеет раздел о запуске и остановке основных анимаций
  2. willRotateToInterfaceOrientation: duration уведомляет вас о начале вращения.

Так что все, что нужно сделать, это 1) из 2)

...