Подтвердить что ты не робот

Удаление изображения из UIImageView

Я загружаю UIImageView образ в зависимости от взаимодействия пользователя. Когда первоначально отображается родительский вид, изображение не было выбрано, а изображение - черным. Если пользователь покидает это представление и возвращается, изображение все еще присутствует. Я пробовал

myImageView.image = nil;

при выходе из представления, но изображение остается. Как удалить изображение, чтобы UIImageView снова появлялся черным?

UIImageView

подключается через IB.

4b9b3361

Ответ 1

Установка UIImageView как:

myImageView.image = nil 

- это правильный способ очистки UIImageView. Вы загружаете изображение, когда возвращается ваша функция вызова? Объявляется ли ваш UIImageView и/или используется в другом месте вашей основной функции?

Ответ 2

Попробуйте указать [self.imageView setNeedsDisplay]; после установки изображения на нуль. Это вызовет перерисовку этого элемента в следующем цикле runloop, который я считаю. Ака вы отмечаете это мнение как "грязное" и нуждаетесь в перерисовке.

Ответ 3

У меня была аналогичная проблема с UIImageView на моем UIButton, где я установил изображение, используя

[button setImage:image forState:UIControlStateNormal];

Установив его на nil, вы удалите изображение, но снова вызовите getter reset изображение. Я исправил его с помощью

[button setImage:nil forState:UIControlStateNormal];

вместо

[button.imageView.image = nil];

Ответ 4

У меня также была та же проблема, независимо от того, что я использую myImageView.image = nil или [myImageView setImage:nil], изображение все еще отображается на UIImageView; предполагая, что один должен работать. Он проводит много часов для отладки и выяснения, где проблемы. Наконец, я сделал это, используя следующий код,

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

Я не знаю, почему, но когда я работаю как анимация, тогда изображение может быть понятным.

Ответ 5

Вы можете использовать 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];
}