Удаление изображения из UIImageView
Я UIImageView
С изображения в зависимости от взаимодействия с пользователем. При первоначальном отображении родительского вида изображение не было выбрано, и изображение является черным. Если пользователь покидает это представление и возвращается, изображение все еще там. Я пробовал
myImageView.image = nil;
при выходе из вида, но изображение остается. Как я могу удалить изображение так UIImageView
опять появляется черный?
The
UIImageView
подключен через ИБ.
5 ответов:
задание
UIImageView
как:myImageView.image = nil
это правильный способ очистить
UIImageView
. Вы загружаете изображение, когда ваша вызывающая функция возвращается? Это вашUIImageView
объявляется и / или используется в другом месте в вашей основной функции?
попробовать заявив
[self.imageView setNeedsDisplay];
после установки изображения на ноль. Это вызовет перерисовку этого элемента в следующем цикле runloop, я считаю. Ака вы отмечаете этот вид как "грязный" и нуждается в перерисовке.
у меня была аналогичная проблема с UIImageView на моем UIButton, где я установил изображение с помощью
[button setImage:image forState:UIControlStateNormal];
установка его на ноль удалит изображение, но вызов геттера снова сбросит изображение. Я исправил это с помощью:
[button setImage:nil forState:UIControlStateNormal];
вместо
[button.imageView.image = nil];
можно использовать
UITapGestureRecognizer
для удаления изображения за заданное количество кликов.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];
и дать определение метода:
- (void)onImageTapped:(UITapGestureRecognizer*)recognizer { UIImageView *imgView = (UIImageView*) recognizer.view; [imgView removeFromSuperview]; }
Я также получил ту же проблему, независимо от того, я использую
myImageView.image = nil
или[myImageView setImage:nil]
изображение все еще показывают наUIImageView
; предполагая, что любой из них должен работать. Он тратит меня много часов, чтобы отладить и выяснить, где есть проблема. Наконец, я сделал это с помощью следующего кода[UIView beginAnimations:nil context:nil]; [UIView animateWithDuration:1 animations:nil]; myImageView.image = nil; [UIView commitAnimations];
Я не знаю, почему, но когда я работаю в качестве анимации, то изображение может быть предельно ясно.