2016-03-16 20 views
10

Sto sviluppando una piccola app in Swift 2.0. Ho una visione con la seguente gerarchia:Aggiungi una ScrollView a una vista esistente

enter image description here

Ora, gli elementi inseriti in questo punto di vista non possono essere visualizzate completamente in esso, quindi vorrei usare un ScrollView al fine di essere in grado di scorrere tutto il contenuto.

Come posso incorporare tutto il contenuto del mio View in un nuovo ScrollView? Posso farlo a livello di codice tramite codice?

+1

Possibile duplicato di [Aggiunta di UIScrollView a un UIViewController] (http://stackoverflow.com/questions/14055950/adding-uiscrollview-to-a-uiviewcontroller) –

+0

È possibile aggiungere lo scrollView dallo storyboard, ma una volta fatto questo, devi impostare il vincolo per tutta la vista che aggiungi all'interno di scrollView. Non puoi semplicemente aggiungere scrollView e aspettarti che scorrerà. –

+2

Per incorporare scrollView selezionare tutte le viste che si desidera aggiungere a ScrollView e, andare a Editor - IncorporaIn - ScrollView. –

risposta

24

UPDATE: C'è un modo più semplice per fare questo, che non sapevo quando ho postato questa risposta

1) Vai viewcontroller sullo storyboard e fare clic su qualcosa in esso e premere Command + A. Questo selezionerà tutti gli elementi nella vista.

2) Vai a Editor -> Embed In -> Scroll View. Questo incorpora tutte le etichette, le viste, ecc. In una scrollView.

3) Selezionare lo scrollview appena integrato. Premere Control e trascinarlo nel rispettivo file di classe del viewcontroller e creare una presa scrollView.

4) Aggiungere questo al vostro viewDidLoad()

scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100) 

Assicurarsi che l'altezza del contentSize è più che la dimensione della vostra vista.

AGGIUNTA ScrollView MANUALE

1) Trascinare e rilasciare un scrollview dalla libreria di oggetti sul vostro viewcontroller nello storyboard e creare uno sbocco al vostro programma come 'ScrollView'.

2) Fare clic su viewcontroller e andare all'ispettore dimensioni e annotare la larghezza e l'altezza.

3) Fare clic su scrollview e impostare width e height come lo viewcontroller. e impostare i valori X e Y a 0

4) clicca sul scrollView e trascinarlo un po 'al lato

5) Premere Command+A per selezionare tutti gli elementi compresi scrollView. Premere Command e fare clic sul scrollView per deselezionare il ScrollView

6) avrete tutti gli elementi tranne il scrollView selezionato ora. Ora fai clic e trascinali nella scrollView.

Moving into scrollView

7) Ora cliccate sul scrollView e impostare i valori X e Y a 0 dal ispettore Size.

8) Aggiungi questo al vostro viewDidLoad()

scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100) 

Assicurarsi che l'altezza del contentSize è più che la dimensione della vostra vista.

Questo dovrebbe creare una vista a scorrimento per la visualizzazione. Alcuni degli elementi potrebbero trovarsi in una posizione leggermente diversa. Puoi sistemarli facilmente spostandoli sulla storyBoard.

+0

Ho impostato nuovamente tutti i vincoli dopo l'incorporamento del mio elemento di visualizzazione nello scrollView? –

+0

Io non la penso così. Devi solo impostare i vincoli della scrollview. – ebby94

+0

Risposta impressionante. Salva un sacco di problemi, nel mantenere intatti i vincoli esistenti, tuttavia, tutti i vincoli tra i singoli elementi per il superview andranno via mentre la scrollview viene aggiunta in mezzo. Quindi prima era Superview-> Individual elements e ora è Superview-> Scrollview-> Individual elements. Quindi tutti i vincoli iniziali tra elementi e superview saranno ora sostituiti da scrollview ed elementi e dobbiamo anche aggiungere nuovi vincoli tra scrollview e superview. – EmbCoder

5

Può essere fatto anche più semplice della risposta di ebby94.

1) Accedere al viewcontroller nello storyboard e fare clic su qualcosa in esso e premere Comando + A. Ciò selezionerà tutti gli elementi nella vista.

2) Vai a Editor -> Incorpora in -> Scorri vista. Questo incorpora tutte le etichette, le viste, ecc. In una scrollView.

3) Impostare i vincoli della Vista di scorrimento sui bordi della vista.

E sei a posto! Non c'è bisogno di una presa.

+0

Al punto 3 ho impostato 4 vincoli: guida in alto, in coda, in alto, guida al layout in basso. Ricevo un avviso che dice: "La dimensione del contenuto scorrevole è ambigua per" Vista di scorrimento "." –

+0

Sei sicuro di aver fatto tutti i passaggi precedenti giusto? – FredFlinstone

+0

Ben fatto! Funziona perfettamente. –

0

Selezionare tutti gli elementi e incorporare la vista di scorrimento (editor-> incorporato in> scrollView) funziona correttamente.

L'aggiunta di un vincolo è molto più semplice selezionando l'avviso di vincolo (Aggiungi vincoli mancanti).