iPhone/iOS: Comment mettre en œuvre de Glisser-Déposer pour les sous-vues d'une Scrollview?
Je vais avoir une horizontale scrollview dans un UIViewController
, où j'ai beaucoup d'images dans les petites tailles. Je suis en gardant les images dans le scrollview, car les images sont plus, de sorte que l'utilisateur peut faire défiler horizontalement et choisir des images. Mais, le problème c'est que j'ai pour sélectionner une image et la faire glisser et déposer pour que UIViewController
vue. Mais, étant donné que les images sont dans le scrollview, faites glisser et déposer des images dans UIViewcontroller
'est pas de travail, pas de détecter les événements tactiles.
Veuillez NOTE: Si je n'ai pas le scrollview mais juste de garder les images dans UIViewcontroller
s'lui-même, faites glisser et déposer les images sur le même écran, fonctionne très bien.
Comment puis-je résoudre ce problème quand j'ai besoin d'avoir le scrollview et faites-le glisser et déposer des images, des conseils/aide s'il vous plaît?
OriginalL'auteur Getsy | 2012-03-15
Vous devez vous connecter pour publier un commentaire.
Salut Getsy,
Je ne vais pas vous donner le code directement, mais donner idée de la façon de les gérer.
Vous pouvez gérer de cette façon, Lorsque vous obtenez touch sur votre objet dans le scrollView, à ce moment, ou lorsque vous déplacez un objet en faisant glisser à l'époque désactiver le défilement par
myScroll.scrollEnabled = NO;
Puis, Quand sur endTouch vous pouvez activer le Défilement par
myScroll.scrollEnabled = YES;
par ce que vous pouvez gérer vous objet se déplaçant dans de défilement espère que vous avez compris la logique.Voici la démo de code : Le glisser-Déposer avec le ScrollView. qui a la même logique de
Disabling
de défilement de la vue surtouchesMoved:
etEnabling
de défilement de la vue surtouchesEnded:
.OriginalL'auteur AJPatel
Je ne mettre en œuvre que les comportements avant sans aucun sous-classement.
J'ai utilisé
canCancelContentTouches = NO
de laUIScrollView
assurez-vous que le sous-vues poignée, il y touche sur leur propre. Si une sous-vue (dans votre cas, une image) a été touché, j'ai déplacé le point de vue de la scrollview sur le superview et a commencé à les localiser dans son déplacement. (Vous devez calculer les coordonnées correctes au sein de la nouvelle superview, de sorte qu'il reste en place).Après avoir fait glisser les finitions, j'ai vérifié si la zone cible est atteint, sinon, je l'ai déplacé en arrière dans le scrollview. Si ce n'est pas assez détaillé je pouvais poster du code.
Eh bien voici mon code d'exemple: Github: JDDroppableView
Votre Exemple de lien n'est pas valide, pouvez-vous m'envoyer ce code sur mon mail mon mail id est [email protected]
J'ai mis à jour le lien. Le projet a été renommé.
OriginalL'auteur calimarkus
Getsy,
D'essayer le code pour faire glisser et déposer des objets :
Peut ce code va vous aider.
OriginalL'auteur Kuldeep
Pour un problème similaire, j'ai fait UIScrollView sous-classe comme suit: PoliteScrollView passes de touch les messages du sous-vues lorsqu'il détermine qu'ils sont entraînés.
La clé de la conception de l'idée, c'est que de la drague dans un défilement de vue est ambiguë. Est à l'utilisateur de défilement ou en faisant glisser une sous-vue? PoliteScroll afficher les poignées de ce par le biais de deux choses: (1) une notion d'orientation (horizontale si c'est plus long que large, à la verticale sinon), et (2) un seuil de distance de ce qui constitue un faites glisser dans la direction perpendiculaire à l'orientation. (par défaut à 1/10 de la largeur ou de la hauteur).
J'ai collé ce et plusieurs autres fichiers sont dans un coller bin, contenant les éléments suivants:
De les associer dans un projet, coller la pâte bin dans des fichiers nommés de façon appropriée, ajouter une table de montage avec un PoliteScrollView (assurez vous de la mettre de son délégué), d'ajouter des images (le ViewController essaie de l'ajouter puppy0.jpeg pour puppy4.jpeg.
OriginalL'auteur danh
J'ai créé un exemple qui illustre comment glisser-déposer entre deux ou plusieurs points de vue:
http://www.ancientprogramming.com/2012/04/05/drag-and-drop-between-multiple-uiviews-in-ios/
J'ai trouvé une bonne idée pour inscrire le geste de reconnaissance d'un autre point de vue que les opinions réelles glissé. Cela permettra de s'assurer les gestes de continuer même si l'traîné les changements de vue de son "parent" de la vue.
Peut-être que ça peut donner un peu d'inspiration
OriginalL'auteur jeyben