[iphone] self.view에서 모든 하위보기를 제거하는 가장 좋은 방법은 무엇입니까?

다음과 같은 것이 효과가있을 것이라고 생각했습니다.

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

모든 종류의 하위보기를 제거하고 싶습니다. UIImages, Buttons, Textfields 등



답변

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

변형과 동일하지만 약간 더 짧습니다.


답변

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

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를 수행하여 모든 하위보기를 제거하고 있습니다.


답변

Swift 4+의 경우 UIView. 필요할 때마다 전화하십시오.

extension UIView {
    func removeAllSubviews() {
        subviews.forEach { $0.removeFromSuperview() }
    }
}


답변