it-swarm.com.de

Was ist der beste Weg, um alle Subviews aus Ihrem self.view zu entfernen?

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.

83
user440096
[self.view.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];

Es ist identisch mit Ihrer Variante, jedoch etwas kürzer.

240
Max
self.view.subviews.forEach({ $0.removeFromSuperview() })

Identische Version in Swift.

16
lcl

Schnell:

extension UIView {
    func removeAllSubviews() {
        for subview in subviews {
            subview.removeFromSuperview()
        }
    }
}
6
mixel

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

1
spikee

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() }
    }
}
0
ishwardgret