Что является лучшим способом, чтобы удалить все подпанелей из вас самостоятельно.посмотреть?


Я думал, может быть, что-то вроде этого может сработать:

    for (UIView* b in self.view.subviews)
    {
       [b removeFromSuperview];
    }

Я хочу удалить все виды подвидов. UIImages, кнопки, текстовые поля и т. д.

4 83

4 ответа:

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

он идентичен вашему варианту, но немного короче.

self.view.subviews.forEach({ .removeFromSuperview() })

идентичная версия в Swift.

Swift:

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

вы можете использовать такой

//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()
}

вид-это вид, который вы хотите удалить все. вы просто удаляете каждый подвид, делая forEach