我在 UITableView 上创建了一个视图,这里是代码
UIView *olderLinesView = (UIView*)[self.view viewWithTag:1820];
for (UIView* view in [olderLinesView subviews]) {
[view removeFromSuperview];
}
[olderLinesView removeFromSuperview];
UIView *linesView=[[UIView alloc]initWithFrame:CGRectMake(2, -2, 1022, height)];
[linesView setBackgroundColor:[UIColor clearColor]];
[linesView setUserInteractionEnabled:NO];
[linesView setTag:1820];
[tableView addSubview:linesView];
但问题是,如果在创建 linesView (相同视图)之前删除 olderLinesView ,则根本不会创建 linesView 。如果我在创建之前不删除此视图,则会反复重绘视图。我一次又一次地调用此代码,因此需要在创建新实例之前删除此视图。我在这里做错了什么?
答案 0 :(得分:1)
您需要修改以下代码
UIView *olderLinesView = (UIView*)[self.view viewWithTag:1820];
for (UIView* view in [tableview subviews])
{
if( [view isKindOfClass:[olderLinesView class]] )
{
for (UIView* subview in [view subviews])
{
[subview removeFromSuperview]; //if you want all views
}
}
}
///(OR)
for (UIView* view in [tableview subviews])
{
if( [view isKindOfClass:[olderLinesView class]] )
{
for (UIView* subview in [view subviews])
{
if(subview.tag==1820)
{
[subview removeFromSuperview];//if you want remove single view
}
}
}
希望它可以帮助你......!