【问题标题】:Remove all subviews except named删除除命名的所有子视图
【发布时间】:2014-12-31 23:59:41
【问题描述】:

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

【问题讨论】:

    标签: ios xcode swift uiview subview


    【解决方案1】:

    出于几个原因,我不会完全按照索尼建议的方式去做。

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

    2. 您可能还删除了与布局相关的子视图,即 UILayoutGuide,您没有明确添加到视图中。

    相反,我建议迭代一个单独的数组,其中包含原始 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()
        }
    }
    

    【讨论】:

      【解决方案2】:
          for subView in view.subviews as [UIView] {
              if subView != toolBarOne && subView != toolBarTwo {
                  subView.removeFromSuperview()
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2012-03-20
        • 1970-01-01
        • 2011-01-10
        • 2021-02-06
        • 2011-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        相关资源
        最近更新 更多