【问题标题】:How to remove selected image from image view?如何从图像视图中删除选定的图像?
【发布时间】:2013-02-17 21:13:49
【问题描述】:

在我的应用程序中,我有一种方法 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 方法来删​​除选定的图像?

【问题讨论】:

  • 如果[arrImages objectAtIndex:index] 已经是NSString(我想是),那你为什么还要对+ [NSString stringWithFormat:] 添加另一个调用?

标签: ios cocoa-touch imageview


【解决方案1】:

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

声明一个 NSMutableArray 来保存 UIImageViews。

首先,将其添加到您的 loadImage 方法的末尾:

[arrayOfUIImageViews addObject:ImageView]

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

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

【讨论】:

  • 我不知道删除选定的图像。我的意思是当我到达 index2 时,我想从 index0 中删除图像。我只想在内存中使用 index1、index2 和 index3。当我到达 index2 时如何删除 index0?
【解决方案2】:

您可以输入唯一的标签号来跟踪您要删除的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】:

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

    ImageView.image = nil;
    

    您也可以在此答案中指出。 Removing image from UIImageView

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-25
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多