Каков наилучший способ удалить все подзаголовки из вас self.view?

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

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

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

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

Swift:

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

Ответ 4

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

//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 - это представление, из которого вы хотите удалить все. вы просто удаляете каждый элемент subview, выполняя forEach