如何从图像视图中删除所选图像?

时间:2013-02-17 21:13:49

标签: ios cocoa-touch imageview

在我的应用中,我有一个方法loadImage loadImage方法用于将新图像添加到imageView中。

-(void)loadimage:(int)index
{
  ImageView = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width*index, 0, self.view.frame.size.width, self.view.frame.size.height-88)]; // -88(Upper+Lower)

  NSString *imageNameStr = [NSString stringWithFormat:@"%@",[arrImages objectAtIndex:index]];
  ImageView.image=[UIImage imageNamed:imageNameStr];

  [ScrollView addSubview:ImageView];
}

添加图像后,我想删除旧图像 removeImage方法用于从imageView中删除旧图像。

如何创建removeImages方法来删除所选图像?

4 个答案:

答案 0 :(得分:0)

首先,您需要保留图像子视图列表。之后,您可以在滚动视图中调用要删除的removeFromSuperview

声明一个NSMutableArray来保存UIImageViews。

首先,在最后将它添加到你的loadImage方法:

[arrayOfUIImageViews addObject:ImageView]

然后,要删除索引0处的图像,请执行以下操作:

[[arrayOfUIImageViews objectAtIndex:0] removeFromSuperview]
[arrayOfUIImageViews removeObjectAtIndex:0]

答案 1 :(得分:0)

  1. 创建一个透明图片,其大小与ImageView相同,并将其命名为“nothing.png”
  2. 将“nothing.png”添加到您的项目
  3. 使用您的图片名称创建一个字符串:
  4. NSString *nothingString = [[NSString] initWithFormat:@"nothing.png"]

    1. 当你想要清除UIImageView时,只需输入以下代码:
    2. ImageView.image=[UIImage imageNamed:nothingString];

      最简单的方法!哈哈哈

答案 2 :(得分:0)

您可以添加唯一标记号以跟踪要删除的UIImageView。 在loadImage:方法中:

ImageView.tag = index + numberOffset; 

numberOffset是您知道不会使用的整数值,因此您可以避免碰撞

然后,删除图像

-(void)removeImage:(int)tagIndex
{
    UIImageView *imgView = (UIImageView *)[ScrollView viewWithTag:tagIndex];
    if (imgView != nil) 
    {
       [imgView removeFromSuperview];
    }
}

致电removeImage:index + numberOffset

希望有所帮助

答案 3 :(得分:0)

您可以将图像视图设置为nil,这是清除它的最简单方法。

ImageView.image = nil;

你也可以在这个答案中注意到。 Removing image from UIImageView