Как реализовать UIViewAnimationOptionBeginFromCurrentState - PullRequest
0 голосов
/ 06 января 2012

У меня есть фрагмент звука и связанные с ним кнопки Play & Stop, при нажатии кнопки Play я использую анимацию курсора, чтобы указать, в какой точке аудиосэмпла мы находимся в данный момент.Всякий раз, когда нажимается кнопка остановки, я хочу, чтобы мой курсор возвращался к своим начальным координатам.Я полагаю, UIViewAnimationOptionBeginFromCurrentState может быть способ сделать это?Мой код для начальной анимации приведен ниже, у кого-нибудь есть какие-либо советы о том, как использовать UIViewAnimationOptionBeginFromCurrentState для того, чтобы отправить курсор назад к его исходным координатам?

Спасибо за любую помощь заранее:)

    [UIView beginAnimations:@"MoveView" context:nil];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
    [UIView setAnimationDuration:2.0f];
    yellowBar.frame = CGRectMake(310, 20, 5, 100);
    [UIView commitAnimations];

Ответы [ 3 ]

6 голосов
/ 06 января 2012

Если вы все еще используете beginAnimations / commitAnimations, используйте setAnimationBeginsFromCurrentState:.В противном случае вы можете передать UIViewAnimationOptionBeginFromCurrentState в animateWithDuration:delay:options:animations:completion: для параметра options.

2 голосов
/ 16 ноября 2012

Брайан прав, у вас есть две альтернативы:

//Initialize newFrame here

[UIView animateWithDuration:0.5
                      delay:0.0
                    options:UIViewAnimationCurveEaseInOut | UIViewAnimationOptionBeginFromCurrentState //Multiple options
                 animations:^ {

                     [yourView setFrame: newFrame];
                 }
                 completion:^ (BOOL finished) {

                 }];

Или

//Initialize newFrame here

[UIView beginAnimations:nil context:nil];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.5];

    [yourView setFrame: newFrame];

[UIView commitAnimations];
0 голосов
/ 06 января 2012

AFAIK, вы можете использовать эту опцию только с блочной анимацией (которую вам все равно рекомендуется использовать). Вы бы использовали метод animateWithDuration:delay:options:animations:completion:, описанный здесь .

...