Voglio mostrare un'animazione personalizzata quando si spinge un controller di visualizzazione: mi piacerebbe ottenere qualcosa come un'animazione "expand", ovvero la nuova vista si espande da un determinato rettangolo, diciamo [100,100 220,380] durante l'animazione a schermo intero.Animazione personalizzata per la spinta di un UIViewController
Qualche suggerimento da cui partire, rispettivamente documenti, esercitazioni, collegamenti? :)
OK. Ho potuto fare l'animazione espandere con il seguente codice:
if ([coming.view superview] == nil)
[self.view addSubview:coming.view];
coming.view.frame = CGRectMake(160,160,0,0);
[UIView beginAnimations:@"frame" context:nil];
[UIView setAnimationDuration:4];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[coming viewWillAppear:YES];
[going viewWillAppear:YES];
coming.view.frame = CGRectMake(0, 0, 320, 480);
[going viewDidDisappear:YES];
[coming viewDidAppear:YES];
[UIView commitAnimations];
La mia opinione è visualizzato correttamente, ma purtroppo la barra di navigazione non viene aggiornato. C'è un modo per farlo manualmente?
Nel codice di esempio, viene chiamata una funzione tutti 0,03 secondi che aggiorna la trasformazione della vista. Sfortunatamente, quando si preme un UIViewController
, non riesco a ridimensionare la cornice della vista ... vero?
Ho provato questo approccio, ma il problema è che quando si usa questo pulsante, il primo controller di visualizzazione scompare prima che il controller successivo inizi l'animazione. Quello che dovrebbe accadere è: 1) il controller della vista successiva si anima e la sua vista copre completamente la vecchia vc's view e quindi la vecchia vc si apre. Sto compilando per iOS 4.3 e questo non funziona. – SpaceDog
Anche questo non è scalabile. Un controller di navigazione dovrebbe gestire l'animazione. Questo è un trucco che dovresti implementare per ogni controller di visualizzazione che viene spinto. –