当用户点击按钮时,我在包含UIScrollView的ViewController中调用此方法。
-(void) updateView:(NSURL *) urlPicture{
UIImageView *imageNews = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,300,200)];
imageNews.contentMode = UIViewContentModeScaleAspectFit;
[imageNews setImageWithURL:urlPicture];
[self.scrollView addSubview:imageNews];
}
它似乎工作正常,但当我有一个奇怪的行为。 它没有清除以前的图像来放置新的图像。 例如:如果第一张图像是300x200而第二张图像是200x200,那么当应用程序下载第二张图像时,我仍然可以看到第一张图像的边。
我想知道在下载第二张图片之前如何清除上一张图片。
我已经尝试imageNews.image = nil
;但它没有工作
答案 0 :(得分:1)
首先,您需要从scrollView中删除旧视图。您可以按照下面的说明编辑代码
#define IMAGE_VIEW_TAG 1001
-(void) updateView:(NSURL *) urlPicture{
UIView *oldView = [self.scrollView viewWithTag:IMAGE_VIEW_TAG];
if(oldView)
[oldView removeFromSuperView]
UIImageView *imageNews = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,300,200)];
imageNews.tag = IMAGE_VIEW_TAG;
imageNews.contentMode = UIViewContentModeScaleAspectFit;
[imageNews setImageWithURL:urlPicture];
[self.scrollView addSubview:imageNews];
}
答案 1 :(得分:0)
嗯,我不确定你的应用程序做了什么, 但似乎你需要只有1张图片 所以我建议你删除上一张图片。
有两种方法:
1)您可以将图片用作财产,只需拨打[_imageNews removeFromSuperView];
2)您可以浏览self.scrollView
个子视图并将其从中移除。