2011-01-27 14 views
5

Voglio creare una vista con tre sottoview impilate l'una sull'altra con la sottoview centrale scorrevole con le altre fisse.Rendi fissa la sottoview di UIScrollView mentre le altre sottoview sono scorrevoli

Come posso raggiungere questo programmaticamente? Ho provato

  • per impostare il contenuto della vista radice sulla dimensione della vista scorrevole ma che fa scorrere tutte le viste.

- imposta il contenuto della sottoscheda centrale senza impostare alcuna proprietà per la vista radice ma rende tutte le viste non convertibili.

Per favore aiuto. Sono nuovo di iOS.

Grazie in anticipo

risposta

23

È possibile utilizzare il callback scrollViewDidScroll: delegato sulla UIScrollView per regolare la posizione del vostro punto di vista. Nel callback, prendi lo contentOffset della scrollview e usalo per impostare la posizione della tua vista fissa.

Ad esempio, se si desidera che la vista fissa rimanga sempre di 100 px dalla parte superiore della vista a scorrimento, impostare il frame iniziale su (0, 100, larghezza, altezza), quindi nel callback impostare la cornice su (0, contentOffset.y + 100, larghezza, altezza).

Il risultato è che la visualizzazione secondaria verrà visualizzata a una determinata altezza.

+0

grazie! Ha funzionato. Solo che le mie immagini a scorrimento richiedevano lo scorrimento orizzontale, quindi aggiorno la coordinata x del frame nel delegato. – sam

+0

nessun problema! Supponevo che steste facendo lo scrolling verticale, felice che tutto funzionasse. – kevboh

+0

Freddo. Ho controllato e sembra che questo sia esattamente ciò che fa UITableView con backgroundView da iOS 3.2. – pt2ph8

3

Se il tuo UIScrollView ha una superview (cioè una vista container), puoi aggiungere la tua vista 'fissa' come una sottoview della superview invece di UIScrollView. Dovrai calcolare le coordinate del tuo telaio solo una volta.

0

lo si può fare in movimento sub vista da UIScrollView a super vista ScrollView come:

Luogo/impostare il pulsante sopra la vista di scorrimento (non dentro vista di scorrimento), come mostrato qui in questa istantanea. E imposta anche i vincoli dei pulsanti (posizione) rispetto alla vista super della tua scrollview.

enter image description here

Ecco rif. istantanea della gerarchia di posizione di ciascuna vista l'una sull'altra.

enter image description here

Problemi correlati