Удаление изображения из 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];Я не знаю, почему, но когда я работаю в качестве анимации, то изображение может быть предельно ясно.