I load a UIImageView
with an image depending on user interaction. When the parent view is initially displayed, no image has been selected and the imageview is black. If the user leaves that view and comes back, the image is still there. I've tried
myImageView.image = nil;
upon leaving the view but the image remains. How can I remove the image so the UIImageView
appears black again?
The
UIImageView
is connected through IB.
Setting the
UIImageView
as:is the correct way to clear an
UIImageView
. Are you loading the image when your calling function returns? Is yourUIImageView
being declared, and/or used elsewhere in your main function?You can use a
UITapGestureRecognizer
to remove the image for a given number of clicks.and give the method's definition:
Try stating
[self.imageView setNeedsDisplay];
after your image setting to nil. This will trigger a redraw of that element on the next runloop cycle I believe. Aka you are marking this view as 'dirty' and needs a redraw.I also got the same problem, no matter I use
myImageView.image = nil
or[myImageView setImage:nil]
the image still show on theUIImageView
; assuming either one should works. It spend me many hours to debug and find out where have problem. Finally, I did it by using the following code,I don't know why, but when I work as an animation then the image can be clear perfectly.
I had a similar problem with the UIImageView on my UIButton, where I had set the image using
Setting it to nil would remove the image, but calling the getter again reset the image. I fixed it with:
instead of