How to remove only user-added subviews from my UIView

ios, subviews, swift, uiview

Solution

If you just want to prevent the loop from removing the `_UILayoutGuide` (which is of class `UILayoutSupport`), try this:

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

And generally speaking, if you'd like to prevent the removal of views other than the `_UILayoutGuide` and if you know the specific types of subviews you'd like to remove from your UIView, you can limit the subviews you remove to those types, ex:

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

Problem

I'm trying to remove all the subviews that I've added to my view, so I've implemented a loop to iterate over the subviews with the following: ``` for subview in view.subviews { println(subview) //subview.removeFromSuperview() } ``` I tested this by adding a UILabel to my view and then ran this code. The output contained my UILabel but also a _UILayoutGuide. So, my question is how can I determine if a subview is one that I added or one that the system added?

Original source

Related problems