iphone - objective - ¿Cuál es la mejor manera de eliminar todas las subvistas de ti self.view?
uikit wikipedia (4)
Estaba pensando que tal vez algo así podría funcionar:
for (UIView* b in self.view.subviews)
{
[b removeFromSuperview];
}
Quiero eliminar todo tipo de subvista. UIImages, botones, campos de texto, etc.
Puedes usar así
//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()
}
view es la vista desde la que desea eliminar todo. solo está eliminando cada subvista haciendo por cada
Rápido:
extension UIView {
func removeAllSubviews() {
for subview in subviews {
subview.removeFromSuperview()
}
}
}
[self.view.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];
Es idéntico a tu variante, pero un poco más corto.
self.view.subviews.forEach({ $0.removeFromSuperview() })
Versión idéntica en Swift.