在iphone中,removeFromSuperView有什么用途?
在我的程序中,如果我在cellForRowAtIndexPath(Tableview)中放置下一行,滚动就可以了。否则,线路将崩溃。我想知道这个代码做了什么 代码是在iphone中,removeFromSuperView有什么用途?,iphone,uiview,Iphone,Uiview,在我的程序中,如果我在cellForRowAtIndexPath(Tableview)中放置下一行,滚动就可以了。否则,线路将崩溃。我想知道这个代码做了什么 代码是 for (UIView *oldViews in cell.contentView.subviews) { [oldViews removeFromSuperview]; } 提前谢谢那就简单了 “cell.contentView.subview”中的每个UIView(因此cell.contentView的子视图)都将被删
for (UIView *oldViews in cell.contentView.subviews)
{
[oldViews removeFromSuperview];
}
提前谢谢那就简单了
“cell.contentView.subview”中的每个UIView(因此cell.contentView的子视图)都将被删除
它将从superview中删除它们,如果retainCount为0,可能会调用dealloc方法。它只是从cell.contentView中删除所有子视图。每个UIView类或子类都可以通过addSubView:,维护其视图层次结构,这些代码将从cell.contentView中删除所有子视图
但是UITableViewCell的实例经常被重复使用。这些代码将删除其所有子视图,因此如果需要重用,它必须重新构建其所有子视图。您必须知道,在iOS中,您正在操作“视图”。视图是UI部件(图像、标签、输入等)或包含层 在启动开始时,必须向窗口添加视图。然后,您可以在视图上添加任意多的视图 如果在视图a上添加视图B,并在窗口上添加视图a 语义是:
- 视图A是B的超视图
- 视图B是视图a的子视图
- 视图A是窗口的子视图
- 该窗口是视图的超级视图 因此,如果您在B上调用removeFromSuperview,您将在A上删除B(并显示)
for (UIView *oldViews in cell.contentView.subviews)
{
[oldViews removeFromSuperview];
}
对每个cell.contentView子视图执行removeFromSuperview方法。
因此,旧视图将从屏幕上删除,但不必取消分配(它们将被释放,以便重新计数-1)