Question

Je suis en train de faire glisser un UIImageView autour de l'écran de l'iPhone dans mon application.

Actuellement, la fonctionnalité glisser-je mettre en place est très bien et en faisant glisser l'image ne se déplace autour de l'écran, le problème est que vous ne devez pas faire glisser le point de vue de l'image pour le déplacer, vous pouvez également faire glisser n'importe où sur l'écran et elle se déplacera l'image. Je suis nouveau à cette plate-forme, donc je ne peux pas vraiment penser à ce qu'il faut faire pour résoudre ce problème. Mon code actuel pour faire glisser l'image est:

 - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
    CGPoint pt = [[touches anyObject] locationInView:pig];
    startLocation = pt;


}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
    CGPoint pt = [[touches anyObject] locationInView:pig];
    CGRect frame = [pig frame];
    frame.origin.x += pt.x - startLocation.x;
    frame.origin.y += pt.y - startLocation.y;
    [pig setFrame: frame];
}

Toute aide appréciée. Par le porc façon est le UIImageView. Aussi je l'ai remarqué que si je mets l'interaction de l'utilisateur de la vue de l'image « cochon » à l'image activée n'est glisser plus en mesure, mais quand il n'est pas défini permis est.

Était-ce utile?

La solution

Vous pouvez essayer de sous-classe UIImageView et mettre en œuvre touchesBegan: et touchesMoved: sur directement. Ensuite, dans InterfaceBuilder sélectionnez votre sous-classe pour le UIImageView.

  

texte alt http://img.skitch.com/20090728-xetretcfubtcj7ujh1yc8165wj.jpg

Oh oui, maintenant, vous devez définir à nouveau l'interaction utilisateur ...

Autres conseils

Vous devez joindre dans BEGIN / COMMIT des séquences d'animation au moins dans votre fil de minuterie:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.02]  /* 0.02 seconds suration*/

/* move pig coordinates here */

[UIView commitAnimations];

Enregistrer le nouveau mouvement dans touchesMoved puis de les traiter dans le fil de la minuterie.

Vous pouvez utiliser une catégorie UIView pour le rendre draggable et définir la zone draggable: https://github.com/rtoshiro/TXDragAndDrop

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top