10 votes

IOS : modifier UIImageView avec la valeur du tag

J'ai 20 UIImageView et je veux changer leur image ; mais je ne veux pas créer 20 IBOutlet, et je veux utiliser la valeur du tag pour changer l'image ; je définis la valeur du tag dans le constructeur d'interface et après ? Si je veux changer l'image de l'Imageview numéro 15 ? Comment faire ?

17voto

Gypsa Points 7554
UIImageView *imageView=(UIImageView *)[self.view viewWithTag:*givetag*];
[imageView setImage:[UIImage imageNamed:@"nameof yourimage"]];

10voto

not really Jake Points 3440

Si vous utilisez des balises, vous pouvez identifier votre vue balisée (UIImageView est une sous-classe de UIView, qui possède l'attribut tag) comme suit :

- (UIView *)viewWithTag:(NSInteger)tag

Ainsi, si vous appelez cette méthode sur votre vue principale (dans laquelle résident tous les UIImageViews), vous devez procéder de la manière suivante :

UIImageView *myImageView = (UIImageView *)[myAwesomeSuperview viewWithTag:15];

( Documentation Je l'ai trouvé en utilisant Google).

P.S : si vous pensez que c'est trop de travail d'ajouter 20 IBOutlets, je vous recommande de créer les UIImageViews par programme également. De cette façon, vous n'aurez pas besoin d'un fichier xib, vous écrirez un petit bout de code et vous aurez une meilleure maintenance avec moins d'efforts.

2voto

Thyselius Points 34

SWIFT, avril 2015 :

func createUIImageViews()
{
    for i in 0...99
    {
        var imageView:UIImageView = UIImageView(frame: CGRectMake(CGFloat(0), CGFloat(0), CGFloat(100), CGFloat(100)))
        imageView.userInteractionEnabled = true
        imageView.tag = i
        imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: "onImageViewTap:"))

        self.view.addSubview(imageView)
    }
}

func onImageViewTap(sender:UITapGestureRecognizer)
{
    println("TAP: \(sender.view!.tag)")
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X