Visionneuse d' images
Bonjour à tous,
Je voudrais faire une sorte de visionneuse toute simple qui permet d' afficher une image puis une autre etc... dans une UIImageView aprés avoir cliqué sur un bouton.
J' ai fait un code qui ne marche pas mais je ne sais pas pourquoi.
Lorsque je clique sur le bouton l' image passe de la numéro 001.jpg à la 006.jpg.
Quelqu' un peut m' aider ?
Merci d' avance.
Je voudrais faire une sorte de visionneuse toute simple qui permet d' afficher une image puis une autre etc... dans une UIImageView aprés avoir cliqué sur un bouton.
J' ai fait un code qui ne marche pas mais je ne sais pas pourquoi.
Lorsque je clique sur le bouton l' image passe de la numéro 001.jpg à la 006.jpg.
-(IBAction)droite:(id)sender{<br /> <br />if (largeimage.image = [UIImage imageNamed:@"001.jpg"]){<br />largeimage.image = [UIImage imageNamed:@"002.jpg"];<br />}<br /> <br />if (largeimage.image = [UIImage imageNamed:@"002.jpg"]){<br />largeimage.image = [UIImage imageNamed:@"003.jpg"];<br />}<br /> <br />if (largeimage.image = [UIImage imageNamed:@"003.jpg"]){<br />largeimage.image = [UIImage imageNamed:@"004.jpg"];<br />}<br /> <br />if (largeimage.image = [UIImage imageNamed:@"004.jpg"]){<br />largeimage.image = [UIImage imageNamed:@"005.jpg"];<br />}<br /> <br />if (largeimage.image = [UIImage imageNamed:@"005.jpg"]){<br />largeimage.image = [UIImage imageNamed:@"006.jpg"];<br />}<br />}
Quelqu' un peut m' aider ?
Merci d' avance.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En fait dans ton premier IF tu regarde si c'est égal à 001 et si c'est le cas, tu lui donne le nom 002.
De suite après, tu regarde si c'est 002.... forcément oui c'est égal du coup ça va faire en quelques milisecondes tu passe de 1 à 6...
Jte laisse chercher un peu plus ...
Tu lui affectes ta première image et si l'affectation s'est bien passée, tu lui affectes ta deuxième image, et ainsi de suite ;D
- Les if qui s'enchaà®nent sans else avec un problème de logique que tu évoques
- Une affectation (simple "=") pour faire une comparaison
- Une comparaison d'objets avec "=" (ou == si on corrigeais) et non les méthodes dédiées
- Comparer un objet de type UIImage plutôt que de faire une machine à état et comparer les états (ou au minimum les noms des images " et encore " mais pas les images elles-mêmes !!)
- La répétition et copier/coller (pas de constantes, pas de boucle, pas d'index pour l'itération et le bouclage
Y'a toutes les mauvaises recettes, en somme ^^
if (largeimage.image == [UIImage imageNamed:@001.jpg]){
largeimage.image = [UIImage imageNamed:@002.jpg];
return; // <= POUR QUITTER LA FONCTION TOUT DE SUITE
}
if (largeimage.image == [UIImage imageNamed:@002.jpg]){
largeimage.image = [UIImage imageNamed:@003.jpg];
return; <= IDEM
}
if (largeimage.image ==[UIImage imageNamed:@003.jpg]){
largeimage.image = [UIImage imageNamed:@004.jpg];
return; <= IDEM
}
}
Quoi que non. Je doute que largeimage.image == [UIImage imageNamed:@000.jpg] fonctionne, vu que ce sont deux objets différents !
J'ajoute que de nos jours les boutons c'est dépassé, enfin sur iOS. C'est plus intuitif d'utiliser une gesture pour passer d'une image à une autre.
Draken, le code que tu as écris marche. Je vais regarder aussi du coté des gesture.
Merci.
Et en plus cette solution ne sépare pas proprement le Modèle de la Vue.
Faut tout simplement implémenter ça sous forme d'une machine à état, c'est fait pour, c'est bien plus propre, et ça permet de séparer MVC.
Ceci consiste tout simplement à faire ceci, rien de plus compliqué : Où currentIndex est un entier, et imageNames est un NSArray contenant la liste des noms de toutes les images.
Ou comment réduire un code compliqué, pas objet, pas MVC, non-fonctionnel, et non garanti en un code fonctionnel qui tient en 2 lignes et est plus dans la philisophie objet et MVC...
Ah oui au temps pour moi !
C'est vrai qu'avec l'habitude et une lecture rapide....tu vois pas le "=" au lieu du "=="..
héhé