从UIImageView中删除图像

我用一个图像加载一个UIImageView取决于用户的交互。 当初始显示父视图时,没有select图像并且图像视图是黑色的。 如果用户离开视图并返回,图像仍然存在。 我试过了

 myImageView.image = nil; 

在离开视图后,但图像依然存在。 如何删除图像,使UIImageView再次显示黑色?

的UIImageView

通过IB连接。

UIImageView设置为:

 myImageView.image = nil 

是清除UIImageView的正确方法。 您的调用函数返回时是否加载图像? 您的UIImageView被声明,和/或在主函数中的其他地方使用?

尝试说明[self.imageView setNeedsDisplay]; 在您的图像设置为零后。 这将触发下一个循环周期中的该元素的重绘,我相信。 也就是说,您将这个视图标记为“脏”,需要重绘。

我有UIImageView在我的UIButton,我已经设置图像使用类似的问题

 [button setImage:image forState:UIControlStateNormal]; 

将其设置为零将删除图像,但再次调用getter重置图像。 我修正了它:

 [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 ; 假设任何一个人应该工作。 花了我好几个小时来debugging,找出哪里有问题。 最后,我通过使用下面的代码,

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

我不知道为什么,但是当我作为一个animation工作,那么图像可以完美清晰。