ios - 如何从我的 UIView 中仅删除用户添加的 subview

标签 ios swift uiview subviews

我正在尝试删除我添加到我的 View 中的所有 subview ,因此我实现了一个循环以使用以下内容迭代 subview :

for subview in view.subviews {
    println(subview)
    //subview.removeFromSuperview()
}

我通过向我的 View 添加一个 UILabel 来测试它,然后运行这段代码。输出包含我的 UILabel 和 _UILayoutGuide。那么,我的问题是如何确定一个 subview 是我添加的还是系统添加的?

最佳答案

如果您只想防止循环删除 _UILayoutGuide(属于 UILayoutSupport 类),试试这个:

for subview in self.view.subviews {
    if !(subview is UILayoutSupport) {
        print(subview)
        subview.removeFromSuperview()
     }
}

一般来说,如果你想阻止删除 _UILayoutGuide 以外的 View ,并且你知道要从 UIView 中删除的 subview 的特定类型,你可以将您删除的 subview 限制为这些类型,例如:

for subview in view.subviews {
    if subview is ULabel {
        println(subview)
        subview.removeFromSuperview()
    }
}

关于ios - 如何从我的 UIView 中仅删除用户添加的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27237457/

相关文章:

ios - 检测 iOS 上的 Night Shift 模式是否处于事件状态

ios - 如何创建随机闭合平滑 CGPath?

ios - 如何删除其中有空格的键? ( swift )

pointers - 从指针中检索用户名对象 - Parse, swift

ios - 如何将addtarget设置为自定义UIView

ios - 无法为模式 segue 的 UINavigationController 设置 rootviewcontroller

ios - 无法将类型 'PFObject' 的值转换为 'NSArray'

ios - 以编程方式创建 uiview?

ios - 类型 'UIView' 的值没有成员 'layout'

swift - 使用 Pickerview 中的数据更改 ARKit 中的图像