2010-11-21 41 views
0

Je sais que cela a déjà fait l'objet d'une réponse (iPhone "touchesBegan" and "touchesMoved" message ... do not move to centre of touch), mais je ne connais pas très bien la solution. Essentiellement, ce que je veux faire est d'avoir un UIImageView qui répond aux touches, pour le déplacer autour de l'écran. L'échantillon d'Apple a l'avis que lorsqu'il a touchéBegan, déplace son centre au toucher, puis déplace la vue.Aidez-moi à comprendre l'implémentation de touches iPhoneBegan et à faire glisser un UIView

Ce que je voudrais, c'est que l'image panoramique comme lorsque vous utilisez le UIImagePicker. L'image sélectionnée ne s'enclenche pas au toucher, mais se déplace au lieu de toucher.

Toute aide serait grandement appréciée.

Répondre

3

D'abord, vous devez vous rendre au point où vous avez d'abord touché l'écran. Ensuite, pour chaque «touché», obtenez les coordonnées delta x et y pour le nouveau point et déplacez l'image de cette quantité.

// This is untested code and I can't even be sure if it compiles 
// Hopefully it is verbose enough to help you with that you are 
// Trying to do. If not I can update once I get back infront of 
// a Mac. 
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    lastPoint = [touch locationInView:self.view]; 
    CGPoint delta = currentPoint - lastPoint; 

    currentViewLoc = imageView.center; 

    imageView.center.x = currentViewLoc.x - delta.x; 
    imageView.center.y = currentViewLoc.y - delta.y; 

    currentPoint = lastPoint; 
} 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    currentPoint = [touch locationInView:self.view]; 
} 

quelque chose comme ça de toute façon. J'espère que vous avez l'idée de ce que j'essaie de dire.

+0

J'apprécie vraiment le temps pris pour répondre, mais en tant que débutant complet, il serait vraiment utile de voir comment cela est réellement utilisé? – Paul

+0

mis à jour le code pseudo à moins de pseudo-code. J'espère que cela aide – Svenito