从self.view中删除所有子视图的最佳方法是什么?

85 iphone objective-c uikit ios

我想也许这样的事可能有用:

    for (UIView* b in self.view.subviews)
    {
       [b removeFromSuperview];
    }
Run Code Online (Sandbox Code Playgroud)

我想删除所有类型的子视图.UIImages,按钮,文本字段等

Max*_*Max 245

[self.view.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];
Run Code Online (Sandbox Code Playgroud)

它与您的变体相同,但略短.


lcl*_*lcl 17

self.view.subviews.forEach({ $0.removeFromSuperview() })
Run Code Online (Sandbox Code Playgroud)

Swift中的相同版本.


mix*_*xel 7

迅速:

extension UIView {
    func removeAllSubviews() {
        for subview in subviews {
            subview.removeFromSuperview()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)