Ich dachte, vielleicht könnte so etwas funktionieren:
for (UIView* b in self.view.subviews)
{
[b removeFromSuperview];
}
Ich möchte jede Art von Unteransicht entfernen. UIImages, Buttons, Textfelder etc.
[self.view.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];
Es ist identisch mit Ihrer Variante, jedoch etwas kürzer.
self.view.subviews.forEach({ $0.removeFromSuperview() })
Identische Version in Swift.
Schnell:
extension UIView {
func removeAllSubviews() {
for subview in subviews {
subview.removeFromSuperview()
}
}
}
Sie können so verwenden
//adding an object to the view
view.addSubView(UIButton())
// you can remove any UIControls you have added with this code
view.subviews.forEach { (item) in
item.removeFromSuperview()
}
ansicht ist die Ansicht, aus der Sie alles entfernen möchten. Sie entfernen einfach jede Unteransicht, indem Sie forEach ausführen
Für Swift 4 +. Sie können eine Erweiterung für UIView
vornehmen. Rufen Sie es wann immer nötig an.
extension UIView {
func removeAllSubviews() {
subviews.forEach { $0.removeFromSuperview() }
}
}