2012-07-12 13 views
5

Sto costruendo un'app con un flusso di contenuti sociali e sto cercando di ottenere il comportamento di come instagram è in streaming in app. Quindi fondamentalmente un'intestazione superiore che scorre fuori dallo schermo ma rimbalza tra quella e il contenuto. Posso fare in modo che l'intestazione superiore scorra dallo schermo e posso fare in modo che la vista non rimbalzi, ma voglio usare Pull per aggiornare e che finisce sopra la barra di navigazione "faux" UIView. So che un normale Navbar produrrà questo, ma questo che scorre è una storia diversa.Come impostare il mio storyboard iOS per rimbalzare come Instagram Stream?

Attualmente ho un UITableview che ha un UIView sopra la UITableViewCell e tutto funziona grande, tranne il rimbalzo avviene al di sopra della UIView. Capisco che ho bisogno di ottenere il UIView sopra il UITableView tuttavia nel UITableViewController lo storyboard non mi permetterà di posizionare il UIView sopra il UITableView.

Qualche idea ???

Grazie

+0

nessuno huh ??? Ho notato che la nuova app di Facebook 5 ha anche questo comportamento nella sua pagina di flusso. Mi piacerebbe molto capire questa app prima di rilasciare la mia app. –

risposta

5

Beh ho finalmente avuto tutto questo per funzionare in modo ho pensato di inviare la risposta per tutti.

Fondamentalmente ho impostato una barra di navigazione standard e quindi su scrollViewDidScroll ottengo l'offset dello scorrimento e modifica il fotogramma in base a quello. Questo sembra funzionare perfettamente, vedi sotto per il mio metodo scrollViewDidScroll.

- (void)scrollViewDidScroll:(UIScrollView *)sender { 

    //Initializing the views and the new frame sizes. 
    UINavigationBar *navbar = self.navigationController.navigationBar; 
    UIView *tableView = self.view; 

    CGRect navBarFrame = self.navigationController.navigationBar.frame; 
    CGRect tableFrame = self.view.frame; 

    //changing the origin.y based on the current scroll view. 
    //Adding +20 for the Status Bar since the offset is tied into that. 
    navBarFrame.origin.y = MIN(0, (sender.contentOffset.y * -1)) +20; 
    navbar.frame = navBarFrame; 

    tableFrame.origin.y = MIN(0,MAX(-44,(sender.contentOffset.y * -1))); 
    tableView.frame = tableFrame; 

} 

Inoltre si vuole rendere il vostro TableView 44px più alto per compensare lo scorrimento altrimenti la cornice non sarà abbastanza grande. L'ho appena fatto in viewWillAppear e ho ingrandito la cornice.

+0

Grazie, questo è veramente utile ma creando 1 problema, sulla barra di navigazione scorrevole sta salendo ma lasciando uno spazio bianco vuoto al posto della barra di navigazione, e la tabella sta scorrendo da quello spazio bianco. Come risolvere questo problema, per favore aiutatemi. –