2009-03-06 13 views
9

Voglio visualizzare un testo con molte linee. Ho aggiunto un'etichetta multilinea a una vista di scorrimento, ma non mostrava nulla. Sembra che questo non sia il modo corretto di usare la vista di scorrimento. Come utilizzare la visualizzazione di scorrimento in modo che gli utenti possano trascinare verso il basso per visualizzare più testo?Come utilizzare la vista di scorrimento su iPhone?

+4

Non ho nulla da aggiungere, ma il tuo nome è fantastico. – Patrick

+0

@Patrick .. sì .. :) – rockey

risposta

10

È sufficiente utilizzare UITextView. È figlio di UIScrollView e se si imposta la proprietà text su una quantità di testo che non rientra nel suo frame, la vista diventerà scorrevole.

21

Apple's UIScollView documentation è abbastanza buono, si dovrebbe iniziare lì e capire la classe.

Pensa a una ScrollView come una grande superficie di visualizzazione su cui scorre lo schermo *. È possibile aggiungere sottoview alla vista a scorrimento e quindi scorrere è come posizionare lo schermo sopra la visualizzazione a scorrimento - lo schermo si comporta come una finestra che è possibile vedere attraverso una parte del contenuto della vista di scorrimento di seguito.

Per fare ciò, una vista a scorrimento ha alcune proprietà extra rispetto ad un normale UIView - ma è come un UIView in un aspetto più significativo: non rende direttamente alcun contenuto. Devi aggiungere una sottoview per disegnare il tuo testo. Una vista a scorrimento viene impostata e visualizzata esattamente nello stesso modo di una UIView, cioè si imposta la cornice per aggiungerla a un'altra vista e per mostrare il testo è necessario aggiungere sottoview a UIScrollView che può effettivamente renderizzare il testo.

Per configurare un UIScrollView di base richiesto, è sufficiente crearlo come una normale visualizzazione a schermo intero: impostare il riquadro con le stesse dimensioni della finestra e aggiungere la vista scorrevole alla finestra come sottoscheda. Quindi crea un UITextView di grandi dimensioni per contenere il testo. La vista UIText può essere grande quanto vuoi, in particolare può essere più grande dello schermo. imposta la proprietà contentSize di UIScrollView in modo che corrisponda al frame di UITextView, quindi aggiungi la vista UIText come sottoscheda di UIScrollView.

Una volta che funziona, è possibile spostare il contenuto automaticamente con la proprietà contentOffset, lo zoom del controllo e impostare un delegato per osservare gli eventi di scorrimento.

* più accuratamente, su cui scorre il fotogramma ma presumo che si stia realizzando un UIScrollView a schermo intero. Sono sicuro che puoi generalizzare se vuoi una vista più piccola.

1

Ho usato UIScrollView in questo modo per un riquadro di istruzioni in una delle mie applicazioni. Ha funzionato, ma non ero soddisfatto del risultato. Poi sono passato a usare UIWebView e sono stato molto più contento del risultato. Gestisce il ridimensionamento automatico della vista a scorrimento, ottengo tutte le funzionalità di formattazione dell'HTML e posso avere collegamenti a informazioni aggiuntive (o siti esterni) con nient'altro che aggiungere un altro file HTML e forse qualche codice delegato. Ecco il codice che ho usato (e ho aggiunto il file HTML per la mia app come risorsa):

NSString *path = [[NSBundle mainBundle] pathForResource:@"instructions" ofType:@"html"]; 
NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path]; 
NSString *htmlString = [[NSString alloc] initWithData: [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding]; 
[self.instructionsView loadHTMLString:htmlString baseURL:nil]; 
1

U può fare riferimento a questo sito http://www.edumobile.org/iphone/iphone-programming-tutorials/scrollview-example-in-iphone/

U seguire il passo per passo per rendere la vista di scorrimento in iphone ... buona fortuna :)

+0

Sembra che tu sia un vero utente di SO piuttosto che uno spammer. Quindi è un po 'sconcertante il motivo per cui hai postato la stessa risposta tre volte. Dovresti eliminare un paio di questi duplicati prima di essere penalizzato. – APC

+0

@APC hai detto penalizzato. Ho già cancellato; l'unica penalità proviene dalla comunità che ha svalutato le sue risposte. – Will

+0

@Will - le persone sono (stavano) anche segnalando le sue risposte come spam. Quindi la reputazione di Jennifer in due modi, anche se immagino che non colpirà le "sei bandiere" magiche ora, e le bandiere spam esistenti svaniranno dopo due giorni. – APC

Problemi correlati