60 votes

Suppression de l'image de UIImageView

Je charge un UIImageView avec une image en fonction de l'interaction de l'utilisateur. Lorsque la vue parent s'affiche initialement, aucune image n'a été sélectionnée et la vue image est noire. Si l'utilisateur quitte cette vue et revient, l'image est toujours là. J'ai essayé

myImageView.image = nil;

en quittant la vue mais l'image reste. Comment puis-je supprimer l'image pour que la UIImageView apparaît à nouveau noir ?

Le site

UIImageView

est connecté par IB.

142voto

Tammen Bruccoleri Points 1936

Fixer le UIImageView comme :

myImageView.image = nil 

est la manière correcte d'effacer un UIImageView . Chargez-vous l'image lorsque votre fonction d'appel revient ? Est-ce que votre UIImageView étant déclaré et/ou utilisé ailleurs dans votre fonction principale ?

3voto

MaxGabriel Points 1919

J'ai eu un problème similaire avec l'UIImageView de mon UIButton, où j'avais défini l'image à l'aide de la fonction

[button setImage:image forState:UIControlStateNormal];

En lui donnant la valeur nil, on supprime l'image, mais en appelant à nouveau le getter, on réinitialise l'image. Je l'ai corrigé avec :

[button setImage:nil forState:UIControlStateNormal];

au lieu de

[button.imageView.image = nil];

2voto

TonyNet Points 48

J'ai aussi le même problème, peu importe que j'utilise myImageView.image = nil ou [myImageView setImage:nil] l'image apparaît toujours sur le UIImageView Je suppose que l'un ou l'autre devrait fonctionner. J'ai passé de nombreuses heures à déboguer et à trouver l'origine du problème. Finalement, je l'ai fait en utilisant le code suivant,

        [UIView beginAnimations:nil context:nil];
        [UIView animateWithDuration:1 animations:nil];
        myImageView.image = nil;
        [UIView commitAnimations];

Je ne sais pas pourquoi, mais lorsque je travaille en animation, l'image est parfaitement claire.

2voto

Mohd Rahib Points 21

Vous pouvez utiliser un UITapGestureRecognizer pour supprimer l'image pour un nombre donné de clics.

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onImageTapped:)];

tapGesture.delegate = self;

tapGesture.numberOfTapsRequired = 2; // no. of taps (clicks) on which you want to remove the image

[myImageView addGestureRecognizer:tapGesture];

et donnez la définition de la méthode :

- (void)onImageTapped:(UITapGestureRecognizer*)recognizer
{

    UIImageView *imgView = (UIImageView*) recognizer.view;
    [imgView removeFromSuperview];
}

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