Objective c 如何从单元格中删除子视图';什么是内容视图?
我已将UIWebview添加到单元格的内容视图中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 *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];