Adds a view to the end of the receiver's list of subviews.
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 done
view.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() }
This should be the simplest solution.
let container_view: NSView = ...
container_view.subviews = []
(see Remove all subviews? for other methods)
Note this is a MacOS question and this answer works only for MacOS. It does not work on iOS.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With