Ios Can';无法正确更新UIImageView

Ios Can';无法正确更新UIImageView,ios,objective-c,uiimageview,sdwebimage,Ios,Objective C,Uiimageview,Sdwebimage,当用户点击按钮时,我在包含UIScrollView的ViewController中调用此方法 -(void) updateView:(NSURL *) urlPicture{ UIImageView *imageNews = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,300,200)]; imageNews.contentMode = UIViewContentModeScaleAspectFit; [image

当用户点击按钮时,我在包含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
;但是它不起作用了我不确定你的应用程序是做什么的, 但是看起来你只需要一张图片 因此,我建议您删除之前的图像

有两种方法可以做到这一点:

1) 您可以使用图像作为属性,只需调用
[\u imageNews removeFromSuperView]


2) 您可以遍历您的
self.scrollView
的子视图并将其删除。

首先需要从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];
}

我有一个带有URL的数组,当用户单击“下一步”时,它会显示下一张图片。差不多吧。我认为问题在于,这种方法实际上并没有达到我想要的效果。我想“销毁”UIViewController,并使用其他参数再次调用它。类似于在Android中销毁和创建碎片。有一种方法可以做到这一点吗?最好按照我的建议去做,或者下面的答案实际上是为你做的,基本上是一样的。