остановка анимации на месте - PullRequest
0 голосов
/ 04 октября 2010

У меня есть анимируемый UISLider, который перемещается по экрану в течение 91,0 секунд. Я хотел бы иметь возможность остановить анимацию.

код:

 [UIView animateWithDuration:91.0
        delay:0.0
        options:UIViewAnimationOptionRepeat|
                    UIViewAnimationOptionAllowUserInteraction|
            UIViewAnimationOptionBeginFromCurrentState
        animations:^{[UIView setAnimationDuration:91.0];
                 [myUISlider setValue:91.0];}
            completion:nil];

    [UIView commitAnimations];
  • один из способов остановить анимацию - установить новое значение. Тем не менее, я не могу прочитать текущее значение / положение ползунка во время анимации. при доступе к mySlider.value я получаю целевое значение (где заканчивается анимация, т. е. 91.

Я покопался и наткнулся на непрерывный флаг , который запускает метод действия и по умолчанию настроен на YES. из справочника разработчика:

"... если ДА, ползунок непрерывно отправляет события обновления в метод действия ассоциированной цели ...".

однако, значение здесь, опять же, 91.0 ...

спасибо за ваше время.

Ваш,

~ НДК.

1 Ответ

0 голосов
/ 04 октября 2010

Если вы спросите слой UISlider о его -presentationLayer, вы можете запросить эту копию слоя для анимированных свойств, близких к реальному времени.Из документации CALayer :

Возвращает копию слоя, содержащего все свойства, какими они были в начале текущей транзакции, с применением любых активных анимаций.

...