iPhone - Déplacer l'objet le long de la touche et faites glisser chemin
Je suis en train d'élaborer une animation simple où un UIImageView
se déplace le long d'une UIBezierPath
, maintenant, je veux fournir à l'utilisateur interaction d'un déplacement UIImageView
de sorte que l'utilisateur peut orienter le UIImageView
en touchant le UIImageView
et faites glisser le UIImageview
autour de l'écran.
Monsieur, j'ai le même problème comme vous l'avez merci de m'aider si vous le faire cette chose.
OriginalL'auteur Pete | 2012-03-29
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez que l'utilisateur sera en mesure de toucher une image au milieu d'une animation avec des images clés le long d'un chemin courbe, et faites-le glisser vers un autre emplacement? Que voulez-vous arriver à l'animation à ce point?
Vous avez de multiples défis.
Première est la détection de la touche sur l'objet lors d'une animation avec des images clés est "en vol".
Pour ce faire, vous voulez utiliser le parent de la vue de la couche de la couche de présentation de la méthode hitTest.
Une couche de la couche de présentation représente l'état de la couche à tout instant, y compris les animations.
Une fois que vous constatez touche à votre vue, vous aurez besoin d'obtenir l'image de l'emplacement actuel de la couche de présentation, arrêter l'animation, et de prendre le contrôle avec un touchesMoved/touchesDragged animation.
J'ai écrit une application démo qui montre comment détecter les touches sur un objet qui est en cours d'animation le long d'un chemin. Que serait un bon point de départ.
Prendre un coup d'oeil ici:
Core Animation de démonstration, y compris la détection de touche sur une vue, alors qu'une animation est "en vol".
OriginalL'auteur Duncan C
Changer l'image de la position de l'affichage de l'image dans touchesMoved:withEvent:.
Edit: un peu de code
Vous devez également mettre en œuvre
touchesEnded:withEvent:
ettouchesCanceled:withEvent:
.Les objets dans le jeu
touches
que vous obtenez dans cette méthode sont UITouches et ils ont donc la propriétéview
qui est le point de vue dans lequel le toucher d'abord eu lieu.est-il possible pour vous de partager un petit extrait de code?
Ajouté un peu de code.
Merci, je vais essayer cela
OriginalL'auteur dasdom
Plus simple serait de sous-classement
UIImageView
.Pour de simples glisser regardez le code ici (code emprunté de l'utilisateur CMH):
UIView glisser (image et texte)
Puisque vous voulez faire glisser le long de tracé de Bézier, vous devrez modifier
touchesMoved:
Exactement ce que vous voulez faire dans
-(CGPoint) calculatePositionForPoint:(CGPoint)location
c'est à vous. Par exemple, vous pouvez calculer le point de Bézier chemin qui est le plus proche de
location
. Pour test simple que vous pouvez faire:Le long du chemin, vous allez avoir à décider de ce qui se passe si l'utilisateur merveilles hors loin de votre
précalculées tracé de Bézier.
OriginalL'auteur Rok Jarc