如何在Swift中删除视图的所有子视图?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (74)

有没有一种简单的方法,立即从超级视图中删除所有子视图,而不是逐个删除。

//I'm trying something like this, but is not working
let theSubviews : Array = container_view.subviews
for (view : NSView) in theSubviews {
    view.removeFromSuperview(container_view)
}

那里错了?

提问于
用户回答回答于

可以在Swift for iOS中执行

view.subviews.forEach({ $0.removeFromSuperview() }) // this gets things done
view.subviews.map({ $0.removeFromSuperview() }) // this returns modified array

用户回答回答于

对于iOS / Swift,删除使用的所有子视图:

for v in view.subviews{
   v.removeFromSuperview()
}

删除特定类的所有子视图(如UILabel)使用:

for v in view.subviews{
   if v is UILabel{
      v.removeFromSuperview()
   }
}

扫码关注云+社区