从UITableViewCell的contentView中删除子视图(重置UITableView)

Ban*_*del 12 iphone uitableview

有关如何重置的任何想法UITableView

我想在按下按钮时显示一组新数据,并从单元格中删除所有子视图,contentView并使用一组新的子视图刷新它们.我试过,[tableView reloadData]但数据确实得到刷新,但是contentView以前持续存在的细胞中添加的子视图.

lef*_*pin 38

更好的是,当你创建单元格时:

#define MY_CUSTOM_TAG 1234
mySubview.tag = MY_CUSTOM_TAG;
[cell.contentView addSubview:mySubview] ;
Run Code Online (Sandbox Code Playgroud)

稍后,当您需要删除它时:

[[cell.contentView viewWithTag:MY_CUSTOM_TAG]removeFromSuperview] ;
Run Code Online (Sandbox Code Playgroud)


Ban*_*del 25

我得到了答案:)

if ([cell.contentView subviews]) {
    for (UIView *subview in [cell.contentView subviews]) {
        [subview removeFromSuperview];
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码将检查单元格的内容视图是否包含任何子视图.
如果有的话,它会在for循环迭代时删除它们!


Emp*_*ack 16

您可以简单地执行此操作,而不是遍历所有子视图(您自己)以删除它们,

[[scrollView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
Run Code Online (Sandbox Code Playgroud)

  • 这实际上是遍历子视图以删除它们.;) (6认同)