2011-02-08 16 views
5

È il seguente facile da programmare?Scorri per cambiare visualizzazione

Ho una vista tabella e quando l'utente seleziona una cella viene caricata una vista dettagliata. Desidero consentire all'utente di navigare attraverso gli elementi/vista-dettagli che rappresentano gli elementi nella vista tabella con i movimenti sinistro e destro, funzionando allo stesso modo di ad es. la schermata iniziale dell'iphone (ad esempio mentre si scorre, una pagina si sposta dallo schermo e appare la successiva).

Ho visto questo implementato in MobileRSS-APP, quindi è possibile, ma ho appena un tempo difficile capire il modo di farlo correttamente.

Grazie mille in anticipo! Sto ancora cercando di trovare i miei piedi con il cacao ...

+1

+1, sono anche interessato ad imparare come funziona. L'app Reeder lo fa scorrendo su e giù, quindi forse EGOTableviewPullRefresh potrebbe essere un buon punto di partenza per la ricerca di tecniche simili. – phi

+0

Sulla base del mio commento, ho effettuato una ricerca (avrei dovuto cercare prima :) e c'è un post sul blog in IDev Recipes che descrive esattamente ciò che volevo: http: // idevrecipes.it/2010/12/28/how-does-the-reeder-iphone-app-swipe-up-and-down-between-articles/ – phi

+0

Grazie Irene, anche questo è molto utile. La seconda risposta sembra essere più nella direzione che sto pensando, ma questo esempio mi dà una risposta ad un'altra domanda, consentendo un pull-down per tornare alla lista (in alternativa al pulsante Indietro) –

risposta

2

Questo non è un segreto, Apple fornisce il codice di esempio chiamato il PageControl che dimostra esattamente ciò che si vuole raggiungere:

Questa applicazione dimostra in primo luogo l'uso di funzionalità di paginazione di UIScrollView di utilizzare lo scorrimento orizzontale come meccanismo per navigare tra diverse pagine di contenuti.

L'ho implementato in many of my apps.

+0

Una vista veloce è ciò che mi aspettavo dal PageControl, ma io non ha ancora avuto la possibilità di avere uno sguardo approfondito. Ma questo significherebbe che invece di caricare la vista dettagliata XIB quando viene selezionata una cella, carico un nuovo ViewController e passo il riferimento alla cella selezionata e lì costruisco la vista dettagliata (e in fase di inizializzazione carica anche le viste di dettaglio a fianco)? –

+0

La "vista dettagliata" è una vista a scorrimento che contiene tutte le viste di dettaglio, la si carica assegnandole un indice e nel frattempo carica pigramente altre visualizzazioni in modo tale che quando gli utenti eseguono il passaggio, le altre viste sono pronte per essere visualizzate. Dai un'occhiata al codice di esempio e vedrai cosa devi fare. Non contiene molto codice. –

2

La schermata iniziale di iphone (trampolino di lancio) funziona con una vista di scorrimento impostata su paging attivata.

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height)]; 
[scrollView setPagingEnabled:YES]; 

Quindi, consente di dire ci sono due pagine di applicazioni per strisciare attraverso - si imposta la dimensione contenuto della vista di scorrimento a due volte la larghezza della vista:

[scrollView setContentSize:CGSizeMake(self.view.frame.size.width*2, self.view.frame.size.height)]; 

E thats come questo è fatto . :) Non so se è lo stesso per MobileRSS-APP.

cose da tenere a mente:

  1. Questo non è il modo di default una vista tabella opera. La tua app potrebbe essere rifiutata da Apple. Una vista tabella è pensata per funzionare facendo clic.

  2. Probabilmente è possibile replicare la funzionalità senza utilizzare una vista di scorrimento utilizzando i metodi touch e il controller di navigazione. Un buon tutorial che descrive come rilevare colpi sul vostro punto di vista è qui: http://www.dosomethinghere.com/2009/07/23/simple-swipe-detection-in-the-iphone-sdk/

Nell'ultimo metodo che un'esercitazione dove c'è il NSLog ("colpo giusto") si potrebbe sostituire quello con [self.navigationController popViewControllerAnimated:YES] che replicare premendo il pulsante "indietro" nella barra di navigazione.

Non so che cosa si potrebbe fare per il colpo di sinistra però ..... se si voleva fare questo sul tavolo vista si dovrà fare un po 'di matematica complicati determinare fino a che punto la vista tabella è stata scorrere . Oppure puoi testare gli eventi tattili sulle celle stesse, ma è qualcosa a cui vuoi guardare. :)

+0

Grazie per la risposta! Per quanto riguarda il tuo commento sul comportamento predefinito del tavolo, penso che Luuk voglia lo scorrimento per la vista di dettaglio, e non per la vista tabella stessa, quindi mi sembra sicuro ... – phi

Problemi correlati