Objective c 如何从单元格中删除子视图';什么是内容视图?

Objective c 如何从单元格中删除子视图';什么是内容视图?,objective-c,ios,uitableview,subview,Objective C,Ios,Uitableview,Subview,我已将UIWebview添加到单元格的内容视图中 UIWebView *webview = [UIWebView alloc]init]; [cell.contentView addSubview:webview]; 现在我打算从单元格的contentview中删除“webview” 我能做以下事情吗 方法1: [webview removeFromSuperview]; for (UIView *subview in [self.contentView subviews]) {

我已将UIWebview添加到单元格的内容视图中

UIWebView *webview = [UIWebView alloc]init];
[cell.contentView addSubview:webview];
现在我打算从单元格的contentview中删除“webview”

我能做以下事情吗

方法1:

[webview removeFromSuperview];
for (UIView *subview in [self.contentView subviews]) 
{
    if ([subview isKindOfClass:[UIWebView class]]) 
    {
        [subview removeFromSuperview];
    }
}
或者我真的需要在删除contentview之前遍历它的所有子视图吗

方法2:

[webview removeFromSuperview];
for (UIView *subview in [self.contentView subviews]) 
{
    if ([subview isKindOfClass:[UIWebView class]]) 
    {
        [subview removeFromSuperview];
    }
}

我尝试了方法1,但它似乎不起作用,我不确定我是否遗漏了什么,或者方法2是否是唯一的方法

您可以使用
removeFromSuperview
。“似乎不起作用”是什么意思?最可能的问题是
webview
在您调用
removeFromSuperview
的点处是
nil
(或者指向其他视图)。确保它指向您所指的视图。

我认为您的webview在实际尝试从superview中删除时为零。从内容视图中删除表数据后,是否尝试重新加载该表数据?您使用哪些方法进行视图操纵?数据源/委托或自定义iActions?

方法1应该可以工作,但您确定要删除的web视图与添加的web视图确实相同吗?从视图中删除给定子视图的简单方法是指定标记:

//...
webView.tag = 123;
[cell.contentView addSubview:webView];
//...
[[cell.contentView viewWithTag:123] removeFromSuperview];

实际上,使用命名常量作为标记当然更好。

方法2就是我要搜索的。谢谢
    //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];