2011-09-16 7 views
7

Así que aquí está el truco. Tengo dos Vistas de desplazamiento, una está llena de 10 subvistas impares, que son básicamente como cartas de juego (vistas de clase personalizadas). Quiero poder arrastrar y soltar algunas de estas vistas a la barra de desplazamiento vacía que tengo.IOS arrastre y suelte entre las vistas de desplazamiento

Hay muchas vistas diferentes entre estas dos vistas de desplazamiento. Así que quiero mostrar la vista que realmente se arrastra desde una vista y que se coloca en la otra vista de desplazamiento. Cómo logro esto.

Sé que tengo que usar toques, pero si alguien puede dar un ejemplo rápido, estaré agradecido. Gracias.

+0

Sí, lo siento, es 'iOS' :) – SeriousSam

+0

¿Nadie tiene alguna respuesta para esto? – SeriousSam

+0

Me sorprende que nadie se haya encontrado antes con tal requisito. – SeriousSam

Respuesta

7

Es muy fácil. ScrollView es como cualquier otra vista, por lo que básicamente se arrastra y suelta una vista de una supervista a otra supervista.

Su jerarquía es la siguiente: Quiere arrastrar y soltar un punto de vista V desde una vista de la A a la vista B. Eso significa que cuando se inicia D & D, V es subvista de A y cuando termine, V es subvista de B. a y B debe tener un supervista común S.

pasos: 0/Su reconocedor de contacto deben estar en S, no en a o B.

1/usuario da un golpecito en V. eliminarlo de A y agregarlo a S en la misma posición (UIView tiene métodos para transformar la posición de una vista a otra vista).
2/El usuario arrastra V a B. Cambia la posición de V en S.
3/El usuario suelta V. Si está lo suficientemente cerca de B, insértelo en B (transformando la posición S-> B) y anime la diferencia entre posiciones . Si todavía está cerca de A, anítalo de nuevo a A. Si se encuentra entre A y B, puedes insertarlo en el más cercano o dejarlo allí y bloquear toda la interacción del otro usuario hasta que el usuario vuelva a pulsar V y lo arrastre a A o B.

+0

Gracias Sulthan ya había implementado una pieza similar de código. Simplemente se olvidó de actualizar el estado aquí :) ¿Pero cómo se bloquea el resto de la interacción del usuario y simplemente se habilita uno en V? – SeriousSam

+0

Solo una pregunta ... Estoy usando un montón de estos puntos de vista pequeños, y quería que en un momento, interactúe con solo uno de ellos. Eso es múltiples drags no debería suceder. Suceden en el iPad. ¿¿¿Cómo resuelvo esto??? – SeriousSam

+0

Posibilidad a/Antes de comenzar a arrastrar, verifique si ya hay vistas que ya están siendo arrastradas. b/Simplemente bloquea todos los demás componentes cuando comiences a arrastrar. – Sulthan

Cuestiones relacionadas