从UIImageView中删除图像
根据用户交互,我加载了带有图像的UIImageView
。当父视图最初显示时,没有选择图像并且图像视图是黑色的。如果用户离开该视图并返回,图像仍然存在。我试过从UIImageView中删除图像
myImageView.image = nil;
在离开视图时图像仍然存在。我如何删除图像,使UIImageView
再次显示黑色?
的
的UIImageView
通过IB连接。
设置UIImageView
为:
myImageView.image = nil
是清除UIImageView
的正确方法。您的调用函数返回时是否加载图像?您的UIImageView
是在您的主要功能的其他地方声明和/或使用的吗?
我也遇到了同样的问题,不管我用的是myImageView.image = nil
还是[myImageView setImage:nil]
图片仍然显示在UIImageView
;假设任何一个人应该工作。它花费我很多时间来调试并找出问题所在。最后,我做到了通过使用下面的代码,
[UIView beginAnimations:nil context:nil];
[UIView animateWithDuration:1 animations:nil];
myImageView.image = nil;
[UIView commitAnimations];
我不知道为什么,但我作为一个动画工作,然后图像可以清晰完美。
我对我的UIButton,我在那里设置使用
[button setImage:image forState:UIControlStateNormal];
将其设置为无会删除图像,但在调用的getter再次重置图像的图像与UIImageView的一个类似的问题。的
[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];
}
试述[self.imageView setNeedsDisplay];
后您的图像设置为零。这会触发在我认为的下一个循环周期中重新绘制该元素。又意味着你将这个视图标记为“脏”并需要重绘。
没有得到足够的这一个,因为我认为这是正确的在这种情况下。 – 2015-09-25 02:07:10
将图像设置为零后,有时ImageView仍会缓存图像而不是reDraw,因此现在这里是最佳解决方案。谢谢 – 2017-11-14 04:15:53
出于某种原因,它现在正在工作。我不知道我做了什么不同的事情。谢谢。 – 4thSpace 2010-01-02 16:50:48
同意;这是你如何清除图像。最可能的原因是nil赋值实际上没有被调用。 – 2010-01-02 16:52:09