当我的应用程序回到它的根视图控制器,在viewDidAppear:方法中,我需要删除所有子视图。
我该怎么做呢?
当我的应用程序回到它的根视图控制器,在viewDidAppear:方法中,我需要删除所有子视图。
我该怎么做呢?
当前回答
试试swift 2.0
view.subviews.forEach { $0.removeFromSuperview() }
其他回答
在objective-C中,创建一个类别方法脱离UIView类。
- (void)removeAllSubviews
{
for (UIView *subview in self.subviews)
[subview removeFromSuperview];
}
如果你想移除UIView(这里是yourView)上的所有子视图,那么在你的按钮点击处写以下代码:
[[yourView subviews] makeObjectsPerformSelector: @selector(removeFromSuperview)];
为了删除所有子视图
- (void)makeObjectsPerformSelector:(SEL)aSelector;
用法:
[self.View.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
该方法存在于NSArray.h文件中,并使用NSArray(NSExtendedArray)接口
在Swift中,你可以使用这样的函数式方法:
view.subviews.forEach { $0.removeFromSuperview() }
作为比较,命令式方法看起来像这样:
for subview in view.subviews {
subview.removeFromSuperview()
}
这些代码片段只适用于iOS / tvOS,但在macOS上略有不同。
view.subviews.forEach { $0.removeFromSuperview() }