从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工作,那么图像可以完美清晰。