How to remove all subviews of a view in Swift? How to remove all subviews of a view in Swift? swift swift

How to remove all subviews of a view in Swift?


EDIT: (thanks Jeremiah / Rollo)

By far the best way to do this in Swift for iOS is:

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

^^ These features are fun!

let funTimes = ["Awesome","Crazy","WTF"]extension String {     func readIt() {        print(self)    }}funTimes.forEach({ $0.readIt() })

//// END EDIT

Just do this:

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

Or if you are looking for a specific class

for view:CustomViewClass! in self.view.subviews {        if view.isKindOfClass(CustomViewClass) {            view.doClassThing()        }    }


For iOS/Swift, to get rid of all subviews I use:

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

to get rid of all subviews of a particular class (like UILabel) I use:

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


The code can be written simpler as following.

view.subviews.forEach { $0.removeFromSuperview() }