删除除named之外的所有子视图

时间:2014-12-31 23:59:42

标签: ios xcode swift uiview subview

我想删除我的UIViewController的所有子视图,除了两个名为toolBarOnetoolBarTwo的子视图。我不知道我应该从哪里开始。你的建议是什么?谢谢。

2 个答案:

答案 0 :(得分:3)

我不会像索尼建议的那样做,原因有两个。

  1. 通过这样做,您将在使用相同的子视图数组进行枚举时删除子视图。

  2. 您可能还会移除与您未明确添加到视图中的与布局相关的子视图,即UILayoutGuide

  3. 相反,我建议迭代一个包含原始self.view.subviews数组副本的单独数组,并排除UILayoutSupport类型的所有子视图:

    var subviews = self.view.subviews
    for subview in subviews as [UIView] {
        if subview != toolBarOne && subview != toolBarTwo && !(subview is UILayoutSupport) {
            subview.removeFromSuperview()
        }
    }
    

答案 1 :(得分:0)

    for subView in view.subviews as [UIView] {
        if subView != toolBarOne && subView != toolBarTwo {
            subView.removeFromSuperview()
        }
    }