2013-03-05 9 views
6

In questo momento sto facendo un app iPad che coinvolge una UITableView che coinvolge UITableView Cells che scorrono a destra ea sinistra, ho un sistema basato NSNotification di lasciare che la UITableViewController sapere quando si verifica una diapositiva . Devo visualizzare uno UITableViewCell sotto la cella che è stata spostata e sopra la cella che si trovava sotto la cella spostata. Mi piacerebbe fare un'animazione di piega come si vede nell'app chiara ma senza lo pinch gesture (ovvero piega automatica). Ho trovato questa libreria chiamata MPFoldTransition. Tuttavia, non supporta UITableView. Ho anche esaminato il pinch gesture in questo tutorial, tuttavia questo tutorial non mi dice come animare automaticamente l'animazione, in quanto richiede agli utenti di fare un gesto di pizzico. Ho guardato intorno al web e non riesco a trovare nulla. Apprezzerò qualsiasi aiuto.Aggiungere UITableViewCells tra 2 UITableViewCells in un UITableView con un'animazione

Grazie

+1

_ "Tuttavia questo tutorial utilizza una sottoclasse UITableViewCell e non posso che" _ Qualche ragione particolare per quello? – iDev

+0

Il motivo è che ho bisogno di distruggere immediatamente l'UIView (cioè rianimarlo) – virindh

+0

@ACB Immagino di poter utilizzare teoricamente un UITableViewCell molto personalizzato, mi dispiace per questa svista, ho modificato la mia domanda per riflettere questo cambiamento – virindh

risposta

7

Questo è del tutto possibile utilizzando MPFoldTransition s' transitionFromView: toView:.... Ho creato un progetto di esempio che posso collegare a se vuoi, ma tutto si riduce veramente basso per questo:

- (void)addNewTableCellToIndexPath:(NSIndexPath *)indexPath { 
    // Add the new object to the datasource and reload the row 
    [dataSourceArray insertObject:@"New" atIndex:indexPath.row]; 

    [self.tableView beginUpdates]; 
    [self.tableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; 
    [self.tableView endUpdates]; 

    //setup temporary cell 
    UITableViewCell *fromCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil]; 
    [fromCell setBackgroundColor:[[self.tableView cellForRowAtIndexPath:indexPath] backgroundColor]]; 
    //setup cell to animate to 
    UITableViewCell *toCell = [self.tableView cellForRowAtIndexPath:indexPath]; 
    [toCell.textLabel setText:dataSourceArray[indexPath.row]]; 

    //add fold animation to the cells create above 
    [MPFoldTransition transitionFromView:fromCell 
            toView:toCell 
           duration:0.4 
            style:MPFoldStyleUnfold 
         transitionAction:MPTransitionActionNone 
           completion:^(BOOL finished) { 
            [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone]; 
           }]; 
} 

proposito è una funzione che prende il percorso di indice come argomento. Invialo al percorso dell'indice in cui desideri aggiungere la cella con una transizione di piega e crea una cella temporanea vuota sulla tabella da cui passare, mentre sposta il resto delle celle verso il basso. Non è perfetto, soprattutto perché non ho trovato un modo per cambiare la durata di a perfettamente abbinata alla durata delle pieghe.

In entrambi i casi, questo dovrebbe essere sufficiente per farti andare. Spero che questo ti aiuti!

Problemi correlati