2011-09-16 18 views
7

Quindi ecco il problema. Ho due visualizzazioni di scorrimento, una è piena di 10 visualizzazioni secondarie, che sono fondamentalmente come carte da gioco (viste di classe personalizzate). Voglio essere in grado di trascinare alcune di queste viste sulla barra di scorrimento vuota che ho.IOS trascinare e rilasciare tra le visualizzazioni di scorrimento

Ci sono molte viste diverse tra queste due viste di scorrimento. Quindi voglio mostrare la vista che viene effettivamente trascinata da una vista e posizionata nell'altra vista di scorrimento. Come ottengo questo.

So che devo usare i tocchi, ma se qualcuno può dare un esempio veloce, sarò grato. Grazie.

+0

yeah scusa per il fatto che è effettivamente 'iOS' :) – SeriousSam

+0

Nessuno ha risposte per questo ??? – SeriousSam

+0

Sono sorpreso che nessuno abbia mai incontrato un simile requisito prima. – SeriousSam

risposta

7

È molto facile. ScrollView è come qualsiasi altra vista quindi è fondamentalmente trascinare e rilasciare una vista da una superview a un'altra superview.

la gerarchia è la seguente: Si vuole trascinare e rilasciare una vista V da una vista Una ad una vista B. Ciò significa che quando si avvia D & D, V è visualizzazione secondaria di A e quando hai finito, V è visualizzazione secondaria di B. a e B deve avere un superview comune S.

Passi: 0/il tuo tocco riconoscitore deve essere su S, non su a o B.

1/utente tocca V. è rimuovilo da A e aggiungilo a S nella stessa posizione (UIView ha metodi per trasformare la posizione da una vista ad un'altra vista).
2/L'utente trascina V su B. Si cambia la posizione di V in S.
3/L'utente scende V. Se è abbastanza vicino a B, inserirlo in B (trasformando la posizione S-> B) e animare la differenza tra le posizioni . Se è ancora vicino ad A, rimandalo ad A. Se è tra A e B puoi inserirlo nel più vicino o lasciarlo lì e bloccare tutte le altre interazioni con l'utente fino a quando l'utente non tocca nuovamente V e lo trascina in A o B.

+0

Grazie a Sulthan, avevo già implementato un codice simile. Ho appena dimenticato di aggiornare lo stato qui :) Ma come blocchi tutte le altre interazioni con l'utente e ne abiliti una su V ?? – SeriousSam

+0

Solo una domanda però ... Sto usando un po 'di queste piccole viste, e volevo che contemporaneamente, interagissi con solo una di esse. Questo è che non dovrebbero accadere più drag. Succedono in IPAD. Come risolvo questo ??? – SeriousSam

+0

Possibilità a/Prima di iniziare il trascinamento, controllare se ci sono già viste trascinate. b/Basta bloccare tutti gli altri componenti quando inizi a trascinare. – Sulthan

Problemi correlati