2012-01-24 14 views
9

biegnę funkcję pulsować ikona Play:animateWithDuration: delay: options: animations: completion: blocking UI podczas używania z UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse

- (void)pulsePlayIcon { 
    if ([self isPlaying]) { 
     return; 
    } 

    [[self videoView] playIcon].hidden = NO; 
    [[self videoView] playIcon].alpha = 1.0; 

    [UIView animateWithDuration:[self playIconPulseDuration] 
          delay:[self playIconPulseTimeInterval] 
         options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) 
        animations:^{ 
         [[self videoView] playIcon].alpha = 0.8; 
        } 
        completion:^(BOOL completed) {}]; 
} 

Działa to doskonale w iOS 5.0, ale w 4.3 Blokuje ona UI. Interfejs użytkownika nie odpowiada. Przeczytałem, że był to sugerowany sposób powtarzania animacji w systemie iOS w wersji 4.0 lub wyższej (> = 4.0). Winowajcą wydaje się być UIViewAnimationOptionRepeat. Czy widzisz jakieś oczywiste błędy, które robię?

+0

Właśnie natknąłem się na ten sam problem. Nie testowałem na iOS 4.3 do dziś. Z jakiegoś powodu wydaje się, że UIViewAnimationOptionAllowUserInteraction ma wartość true dla systemu iOS 5 i nowszych wersji. – jowie

Odpowiedz

11

Prawdopodobnie powinieneś także dołączyć UIViewAnimationOptionAllowUserInteraction.

+0

Idealny. Dziękuję Ci. – schellsan

Powiązane problemy