2009-08-28 7 views
0

J'ai un tas d'images sur l'écran .... UIImageView * s1, s2, s3 etc jusqu'à * s10 Maintenant supposons que je veux mettre à jour l'image que chacun affiche pour la même image. Plutôt que de le faire s1.image = sampleimage; s2.image = sampleimage; : s10.image = sampleimage; Comment puis-je écrire une boucle for pour aller de 1 à 10, puis utiliser la boucle var dans le cadre de la ligne qui met à jour l'image. Quelque chose comme ça. pour (i = 1; i < - 10; ++ i) s (i) .image = échantillon; // Je sais que cela ne fonctionne pasUtilisation La valeur d'une variable NSString pour manipuler l'objet auquel le nom fait référence

La question de base est de savoir comment incorporer la variable dans le cadre de l'instruction pour accéder à l'image? Ne restez pas accroché sur mon exemple. La question principale est de savoir comment utiliser une variable dans le cadre de l'accès à un élément/objet. Bottom Line ... Si je peux construire le nom d'un UIImageView dans un objet NSString, comment puis-je utiliser cet objet NSString pour manipuler le UIImageView.

Merci!

Répondre

2

Vous ne pouvez pas. Ce n'est pas le nom de UIImageView - c'est le nom d'une variable qui fait référence à la vue de l'image, et ces variables n'existent pas nécessairement au moment de l'exécution.

Il semble que ce que vous voulez est un tableau - soit un NSArray ou UIImageView *s[10]. (Cela suppose qu'il n'y a pas vraiment plus de noms descriptifs que vous pourriez donner les vues que "s1" à "s10".)

+0

Je pense que vous devriez être capable de ... par exemple, c'est la même situation résolue dans Delphi .. (Vous cherchez quelque chose de similaire à FindComponent) Au lieu d'écrire: Edit1.Text: = 'Texte 1'; Edit2.Text: = 'Texte 2'; Edit3.Text: = 'Texte 3'; Edit4.Text: = 'Texte 4'; {...} Edit9.Text: = 'Texte 9'; {... il est plus facile d'écrire} { Utilisez les formulaires FindComponent pour trouver un composant sur le formulaire. TypeCastCast le résultat de FindComponent à TComponent pour pouvoir l'utiliser. } pour i: = 1 à 9 faire TEdit (FindComponent ('Edit' + IntToStr (i))) .Texte: = 'Text' + IntToStr (i); –

+0

Delphi n'est pas C. – Chuck

+0

Basé sur la limitation, je pense que vous devriez dire que l'objectif C n'est pas Delphi. Je demande plus d'expérience iphone que moi, comment quelque chose de similaire pourrait être fait dans Objective C. Là où il y a un testament il y a probablement un moyen. –