私はこのような何かがうまくいくかもしれないと考えていました:
for (UIView* b in self.view.subviews)
{
[b removeFromSuperview];
}
あらゆる種類のサブビューを削除したい。 UIImage、ボタン、テキストフィールドなど.
[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()
}
viewは、すべてを削除するビューです。 forEachを実行してすべてのサブビューを削除するだけです
Swift 4+。の場合、UIView
の拡張子を作成できます。必要に応じて呼び出します。
extension UIView {
func removeAllSubviews() {
subviews.forEach { $0.removeFromSuperview() }
}
}