2013-09-23 13 views
7

Nel mio progetto ho una semplice animazione, ho solo spostato una vista da sinistra a destra. Funziona perfettamente con iOS 6, ma quando corro in iOS 7 non fa nulla. Qualcuno sa perché? Se l'animazione è molto semplice, come posso risolvere questo problema con iOS 7? Il mio codice è:Perché questa semplice animazione non funziona su iOS 7?

- (void) showAnimation 
{ 
    if (IS_IPAD()) 
    { 
     [UIView animateWithDuration:50.0f 
          delay:1 
          options:UIViewAnimationOptionRepeat 
         animations:^{ 
             ViewBOLIVIA.frame = CGRectMake(1024,0, ViewBOLIVIA.frame.size.width, ViewBOLIVIA.frame.size.height); 
            } completion:nil]; 
    } 
    else 
    { 
     if (IS_IPHONE_5) 
     { 
      [UIView animateWithDuration:50.0f 
            delay:1 
           options:UIViewAnimationOptionRepeat 
           animations:^{ 
               ViewBOLIVIA.frame = CGRectMake(568,0, ViewBOLIVIA.frame.size.width, ViewBOLIVIA.frame.size.height); 
              } completion:nil]; 
     } 
     else 
     { 
      [UIView animateWithDuration:50.0f 
            delay:1 
           options:UIViewAnimationOptionRepeat 
           animations:^{ 
               ViewBOLIVIA.frame = CGRectMake(480,0, ViewBOLIVIA.frame.size.width, ViewBOLIVIA.frame.size.height); 
              } completion:nil]; 
     } 
    } 
} 

ho fatto l'aggiornamento e Im usando Xcode 5 e iOS 7 modo che qualsiasi aiuto ragazzi, sai come risolvere questo problema?

+1

stai utilizzando Auto Layout? –

+0

no, non sto utilizzando il layout automatico –

+0

Hai utilizzato punti di interruzione per verificare che il codice sia stato raggiunto? – bneely

risposta

16

OK Penso di averlo risolto. Prima di iOS 7 era ok per avere le animazioni in esecuzione in viewDidLoad con gli storyboard. Se sposti le tue chiamate di animazione su - (void)viewDidAppear, allora dovrebbero riprendere a lavorare. Quindi nel tuo caso vorrai chiamare lo [self showAnimation]; nel - (void)viewDidAppear.

- (void)viewDidAppear{ 
    [self showAnimation]; 
} 
+0

grazie jimbob ma non lavoro per me, continuerò a provare a trovare una soluzione, controllo con breakpoint e NSlog, se chiami il metodo in viewDidLoad e viewdidapear, e viene eseguito ma non viene mostrato, non so perché? T_T –

+0

hai provato a utilizzare UIViewAnimationOptionBeginFromCurrentState? – jimbob

+0

Scusa Amico, non funziona, e per l'animazione, ho bisogno di UIViewAnimationOptionRepeat, perché ho bisogno di un'animazione a ciclo continuo o infinito nel frattempo uso l'app U_U –

0

Ho trovato che il posizionamento del codice in questo metodo funziona.

-(void)viewDidAppear:(BOOL)animated { 
    menuView.alpha = 0; 
    topLabel.alpha = 0; 
    [UIView animateWithDuration:1.5 animations:^{ 
     menuView.alpha = 1; 
     topLabel.alpha = 1; 
    }]; 
    [super viewDidAppear:animated]; 
} 
Problemi correlati