Simulateur IOS et UIGestureRecognizer
Bonjour à tous,
je me heurte à un problème basique et sans doute assez idiot, mais malgré toutes mes tentatives et recherches, je n'arrive pas à simuler les gestureRecognizer sur le simulateur. A moins que ce soit que je n'arrive pas à les intercepter, mais je doute. J'ai essayé un test tout simple en le créant dans le NIB, avec delegate et selector correctement connectés. Je teste toutes les combinaisons de touches possible, je ne viens jamais dans mon sélecteur....
Si vous avez des pistes je suis preneuse.
D'avance, merci.
je me heurte à un problème basique et sans doute assez idiot, mais malgré toutes mes tentatives et recherches, je n'arrive pas à simuler les gestureRecognizer sur le simulateur. A moins que ce soit que je n'arrive pas à les intercepter, mais je doute. J'ai essayé un test tout simple en le créant dans le NIB, avec delegate et selector correctement connectés. Je teste toutes les combinaisons de touches possible, je ne viens jamais dans mon sélecteur....
Si vous avez des pistes je suis preneuse.
D'avance, merci.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Peut-être qu'en partageant ton "test tout simple" ... ?
Merci de ta réponse. Voici un de mes essais.
Dans le .h
UIPanGestureRecognizer* moveImage;
Dans le .m qui est une UIView
-(UIPanGestureRecognizer*)moveImage;
{
if (moveImage == Nil)
{
moveImage = [color=#733ea4]UIPanGestureRecognizer[/color] [color=#401f7d]alloc[/color initWithTarget:self action:@selector(pan:)];
}
return moveImage;
}
-(void)setMoveImage:(UIPanGestureRecognizer*)aMoveImage;
{
moveImage = aMoveImage;
}
- (void)pan:(UIPanGestureRecognizer *)gesture;
{
NSLog(@OK, je passe);
if ((gesture.state == UIGestureRecognizerStateChanged) ||
(gesture.state == UIGestureRecognizerStateEnded)) {
CGPoint location = [gesture locationInView:color=#be299d]self[/color] [color=#401f7d]superview[/color];
[self setCenter:location];
}
}
Il faut que tu ajoute le gesture recognizer à ta vue (ici self il me semble)
[edit] Grilled par JegnuX à la minute près :-)
ARC ?
Pour le modifier depuis l'exterieur de la classe ?
Bref ce serait vraiment cool qu'il y ai une case ARC or not quand on post un morceau de code. Non ?
@Jegnux : ouai aussi ^^
Bon, je vais essayer de répondre à chacun.
JegnuX et Kuberman ok, bien reçu, il manque en effet le Add. Merci à vous deux.
Pour les autres : désolée, en effet, pas précisé. J'ai choisi ARC à la base, donc normal qu'il n'y ait pas de release. Je fais des setters pour mieux maitriser mes variables du coup, et il me semble à plus forte raison avec ARC, ça me permet de réallouer si l'objet est inexistant et de limiter le risque d'erreurs.
C'est vrai, je débute, alors, je ne fais pas forcément les meilleurs choix et je ne sais pas toujours bien expliquer mes problèmes.
Vous m'avez bien éclairée. Merci à tous. Je vais retenter.
Edit : Ok, super, ça marche maintenant. Mille fois merci.
Non non ce dont tu parles c'est le design pattern "Lazy loading" je pense, qui permet effectivement d'initialiser "automatiquement" un objet et de l'associer à ta variable la première fois que tu appelleras ton getter [font=helvetica, arial, sans-serif]-([/font][font=helvetica, arial, sans-serif]UIPanGestureRecognizer[/font][font=helvetica, arial, sans-serif]*)moveImage;[/font]
Le setter est justement l'autre méthode qui va avec ton getter : [font=helvetica, arial, sans-serif]-([/font][font=helvetica, arial, sans-serif]void[/font][font=helvetica, arial, sans-serif])setMoveImage:([/font][font=helvetica, arial, sans-serif]UIPanGestureRecognizer[/font][font=helvetica, arial, sans-serif]*)aMoveImage[/font]
Oui, je me suis un peu embrouillée, là . Je fais un setter parce que je fais un getter... pour allouer mon objet. Et aussi pour pouvoir modifier mes variables de n'importe où.
Son écriture ici pose question car il ne fait rien de particulier de plus que ce qu'il est censé faire par défaut (en ARC).
Tu peux donc te passer d'écrire toi même le setter, ça n'a rien à voir avec le fait d'avoir un getter ou de pouvoir modifier tes variables de n'importe où.
- Assignation atomique pour le rendre thread-safe, à moins de préciser que la propriété est nonatomic
- Déclenchement du KVO
Ok, je croyais que Getter Setter marchaient par paire. Cela dit, cela permet de garder la main sur certains cas de variables.
Aligator, pour ta réponse, je n'ai pas tout compris... Je viens juste d'arriver, moi... Je vais essayer de décoder. Pour le moment, pas mal de termes sont encore du chinois pour moi. Du coup, tu viens de m'éclaircir sur un truc, l'assignation atomique.
Merci à vous.