我已将UIWebview添加到单元格的内容视图
UIWebView *webview = [UIWebView alloc]init];
[cell.contentView addSubview:webview];
现在我打算从单元格的内容视图中删除“webview”。
我可以执行以下操作吗?
方法1:
[webview removeFromSuperview];
或者我真的需要在删除之前遍历contentview的所有子视图吗?
方法2:
for (UIView *subview in [self.contentView subviews])
{
if ([subview isKindOfClass:[UIWebView class]])
{
[subview removeFromSuperview];
}
}
我尝试了方法1,它似乎没有用,我不确定我是否遗漏了某些东西,或者方法2是唯一的方法
答案 0 :(得分:6)
方法1应该可以使用,但是您确定要删除的Web视图与您添加的Web视图真的相同吗?从视图中删除给定子视图的一种简单方法是分配标记:
//...
webView.tag = 123;
[cell.contentView addSubview:webView];
//...
[[cell.contentView viewWithTag:123] removeFromSuperview];
在实践中,使用命名常量作为标记当然会更好。
答案 1 :(得分:5)
//creating
// cell.bounds will fill up the cell with your webview
UIWebView *webview = [[UIWebView alloc]initWithFrame:cell.bounds];
webview.tag = 11;
[cell.contentView addSubview:webview];
//removing
[[cell.contentView viewWithTag:11] removeFromSuperview];
答案 2 :(得分:1)
您可以使用removeFromSuperview
。你是什么意思“似乎不起作用?”最可能的问题是webview
在您调用nil
(或指向其他视图)时removeFromSuperview
为{{1}}。确保它指向您的意思。
答案 3 :(得分:1)
我相信你的webview在尝试从superview中删除时是零。从内容视图中删除后,您是否尝试重新加载表数据?你在哪些方法中进行视图操作?数据源/代理或自定义IBActions?