4

我正在制作一个在主视图中有 2 个按钮的程序;

一个叫show,一个叫hide,

当用户按下显示按钮时,图像视图被添加到屏幕

代码 :

-(IBAction)show{
  UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 155, 155)];
  img.image = [UIImage imageNamed:@"icon.png"];
  [self.view addSubview:img];
}

当用户按下隐藏按钮时,我希望应用程序隐藏刚刚添加的图像(img)

但...

当我使用

-(IBAction)add{
  [img removeFromSuperView];
}

Xcode 说“img Undecleared”

编辑:有人说将对象定义为公共对象(@property),但问题是图像视图只添加一次。但我希望它在每次用户按下“显示”按钮时添加新的图像视图,

所以我使用 [[self subviews]objectAtIndex:xx]removeFromSuperview] 方法来解决问题

4

4 回答 4

7

为您的图像视图设置一个tag,然后您可以通过此标签获取它。

[img setTag:123];

...

[[self.view viewWithTag:123] removeFromSuperview];
于 2012-12-12T12:32:11.877 回答
3

UIImageView在文件中创建对象,.h如下所示..

UIImageView *img;

并在.m文件viewDidLoad:方法中添加它,如下所示..

- (void)viewDidLoad
{
    ///your another code
    img = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 155, 155)];
    img.image = [UIImage imageNamed:@"icon.png"];
    img.hidden = YES;
    [self.view addSubview:img];
}

当按下显示按钮时显示图像

-(IBAction)show{
    img.hidden = NO;
    [self.view bringSubviewToFront:img];
}

而对于隐藏只是像下面这样隐藏..

-(IBAction)add{
    img.hidden = YES;
}
于 2012-12-12T12:33:43.277 回答
0

使这个 UIImageView 成为你的 UIViewController 类的成员

于 2012-12-12T12:29:05.883 回答
0

您的 img 对象仅在 show 方法中可见,而不在外部可见..这就是原因。在外面声明它,你的问题就会得到解决。

于 2012-12-12T12:30:20.567 回答