我正在制作一个在主视图中有2个按钮的程序;
一个叫做show而另一个叫hide,
当用户按下show butoon时,会将imageview添加到屏幕
代码:
-(IBAction)show{
UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 155, 155)];
img.image = [UIImage imageNamed:@"icon.png"];
[self.view addSubview:img];
}
当用户按下隐藏按钮时,我希望app隐藏刚刚添加的图像(img)
但是...
当我使用
时-(IBAction)add{
[img removeFromSuperView];
}
Xcode说“img Undecleared”
编辑:有人说将对象定义为公共对象(@property),但问题是imageview只添加一次。但我希望每次用户按下“显示”按钮
时添加新的imageview所以我用[[self subviews] objectAtIndex:xx] removeFromSuperview]方法来解决问题
答案 0 :(得分:6)
为您的图片视图设置tag
&那么你可以通过这个标签得到它。
[img setTag:123];
...
[[self.view viewWithTag:123] removeFromSuperview];
答案 1 :(得分: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;
}
答案 2 :(得分:0)
使这个UIImageView成为你的UIViewController类的成员
答案 3 :(得分:0)
你的img对象只在show方法中可见而不在外面......这就是为什么。在外面宣布它,你的问题就会解决。