如何从超级视图中删除子视图并单击按钮单击重新绘制?
问题描述:
如何从超级视图中删除子视图并点击按钮点击重绘?如何从超级视图中删除子视图并单击按钮单击重新绘制?
float padding = 5.0;
float view_width = 95.0;
float view_height = 120.0;
int rows = 0.0f;
int columns = 0.0f;
UIView *myAddedView ;
for (int i=0; i<[product.CorrentAnswer intValue]; i++)
{
if(i%3 == 0 && i > 0)
{
columns = 0.0f;
rows += view_height;
}
myAddedView =[[[UIView alloc] initWithFrame:CGRectMake(padding+columns, rows, view_width, view_height)] autorelease];
myAddedView.backgroundColor = [UIColor clearColor];
CGRect myImageRect = CGRectMake(40, 100.0f, 40.0f, 40.0f);
UIImageView *myImage = [[UIImageView alloc]initWithFrame:myImageRect];
NSString *imageName = [NSString stringWithFormat:@"%@",product.imagename];
[myImage setImage:[UIImage imageNamed:imageName]];
[myAddedView addSubview:myImage];
[viewarray addObject:myAddedView];
[self.view addSubview:myAddedView];
columns+= view_width;
}
我想从self.view中删除myAddedView?
希望能得到很快回答....
答
可以通过指定一个标签这样做是为了myAddedView
....
代码更改:
myAddedView =[[[UIView alloc] initWithFrame:CGRectMake(padding+columns, rows, view_width, view_height)] autorelease];
myAddedView.backgroundColor = [UIColor clearColor];
//add this line
myAddedView.tag = 10;
和按钮点击(当你想删除子视图时)写:
if([self.view viewWithTag:10]!=nil)
{
[[self.view viewWithTag:10] removeFromSuperView];
}
谢谢
答
user698952的答案没问题,添加标签是最好的选择。
myAddedView.tag = 10;
如果您有多个具有相同标记的视图,您必须更改一小段删除代码。
UIView *someView = nil;
while (someView = [self.view viewWithTag:10]) {
[someView removeFromSuperview];
}
以及感谢这样一个快速回复队友,但我只是用下面的代码的帮助,这样做,如果(viewarray.count> 0){ \t \t \t为(UIView的*在viewarray视图) \t \t \t { \t \t \t \t [view removeFromSuperview]; \t \t \t} \t \t \t \t \t} – 2011-04-10 15:06:35
我不知道为什么你使用这个viewarray因为系统本身具有规定上添加了所有的意见.....所以你只需要来标记不同的看法值........这将帮助您节省内存。谢谢 – Ravin 2011-04-10 15:13:35