UIActivityIndicatorView не анимируется после появления в transitionWithView - PullRequest
3 голосов
/ 28 января 2012

Существует подпредставление моего основного представления с представлением UIActivityIndicator.Первоначально свойство hidden этого подпредставления установлено на YES.

Я хочу, чтобы это подпредставление исчезло на экране.Для этого я использовал следующий код:

[UIView transitionWithView:self.view
                  duration:3.0
                   options:(UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                animations:^{
                    self.subviewWithActivitySpinnerInIt.hidden = NO;
                }

Несмотря на то, что индикатор активности настроен на анимацию, он не анимируется после появления вышеуказанного кода.Однако, если я заменю код выше на строку ниже - в том же месте - тогда, когда появляется индикатор активности, он оживляет.

self.subviewWithActivitySpinnerInIt.hidden = NO;

Есть идеи, что происходит?

(с использованием Xcode 4.2 и iOS 5.)

1 Ответ

0 голосов
/ 24 апреля 2012

Вы пробовали также добавить код в блок завершения? Параметр завершения отсутствует в вопросе.

[UIView transitionWithView:self.view
                  duration:3.0
                   options:(UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
                animations:^{ self.subviewWithActivitySpinnerInIt.hidden = NO; }
                completion:^{ self.subviewWithActivitySpinnerInIt.hidden = NO; }];

В качестве альтернативы, хотя она может не соответствовать вашим потребностям, вы можете рассмотреть возможность использования animateWithDuration вместо transitionWithView. Я думаю, что код ниже эквивалентен:

[UIView animateWithDuration:3.0
                      delay:nil
                    options:UIViewAnimationOptionCurveLinear
                 animations:^{
                     self.subviewWithActivitySpinnerInIt.alpha = 1.0;
                 }
                 completion:nil ];
...