当我的应用程序回到它的根视图控制器,在viewDidAppear:方法中,我需要删除所有子视图。
我该怎么做呢?
当我的应用程序回到它的根视图控制器,在viewDidAppear:方法中,我需要删除所有子视图。
我该怎么做呢?
当前回答
如果你正在使用Swift,它就像:
subviews.map { $0.removeFromSuperview }
它在理念上与makeObjectsPerformSelector方法相似,但是具有更多的类型安全性。
其他回答
view.subviews.forEach { $0.removeFromSuperview() }
如果你想移除UIView(这里是yourView)上的所有子视图,那么在你的按钮点击处写以下代码:
[[yourView subviews] makeObjectsPerformSelector: @selector(removeFromSuperview)];
使用Swift UIView扩展:
extension UIView {
func removeAllSubviews() {
for subview in subviews {
subview.removeFromSuperview()
}
}
}
在monotouch / xamarin。这对我来说很管用:
SomeParentUiView.Subviews.All(x => x.RemoveFromSuperview);
从你的根控制器获取所有的子视图,并给每个子视图发送一个removeFromSuperview:
NSArray *viewsToRemove = [self.view subviews];
for (UIView *v in viewsToRemove) {
[v removeFromSuperview];
}